Si vous êtes intéressé par l'index, sets
ne maintient aucune commande.
De l'Docs:
Être une collection non ordonnée, ensembles ne position de l'élément ou pas enregistrer ordre d'insertion. Par conséquent, les ensembles ne prennent pas en charge l'indexation, le découpage en tranches ou tout autre comportement de type séquence.
Ou peut-être quelque chose comme ceci:
In [1]: se=set("foobarspampython")
In [2]: se
Out[2]: set(['a', 'b', 'f', 'h', 'm', 'n', 'o', 'p', 'r', 's', 't', 'y'])
In [3]: list(se).index("f") # in the original string the index is 0,
# but list(set) returns something different
Out[3]: 2
Python 3.x:
Vous pouvez utiliser OrderedDict()
3.x python, et utilisez vos articles comme les clés du dict. dict.keys()
renvoie keysView
dans python 3.x qui est un peu similaire à sets
, et vous pouvez effectuer toutes les opérations définies sur celui-ci.
>>> from collections import OrderedDict as od
>>> strs="foobarspampython"
>>> dic=od((x,"") for x in strs)
>>> dic.keys() #order is maintained
KeysView(OrderedDict([('f', ''), ('o', ''), ('b', ''), ('a', ''), ('r', ''),
('s', ''), ('p', ''), ('m', ''), ('y', ''), ('t', ''),
('h', ''), ('n', '')]))
>>> list(dic.keys()).index("f")
0
>>> list(dic.keys()).index("b")
2
>>> dic.keys() & {'a','b','c'} # even set operations work fine on it
{'a', 'b'}
les éléments d'un ensemble n'ont pas ** d'index! –
Pourquoi avez-vous besoin d'un index? – SilentGhost