Python Language collections.OrderedDict


Exemple

L'ordre des clés dans les dictionnaires Python est arbitraire: elles ne sont pas régies par l'ordre dans lequel vous les ajoutez.

Par exemple:

>>> d = {'foo': 5, 'bar': 6}
>>> print(d)
{'foo': 5, 'bar': 6}
>>> d['baz'] = 7
>>> print(a)
{'baz': 7, 'foo': 5, 'bar': 6}
>>> d['foobar'] = 8
>>> print(a)
{'baz': 7, 'foo': 5, 'bar': 6, 'foobar': 8}
```

(L'ordre arbitraire implicite ci-dessus signifie que vous pouvez obtenir des résultats différents avec le code ci-dessus à celui montré ici.)

L'ordre dans lequel les clés apparaissent est l'ordre dans lequel elles seront itérées, par exemple en utilisant une boucle for .

La classe collections.OrderedDict fournit des objets de dictionnaire qui conservent l'ordre des clés. OrderedDict peuvent être créées comme indiqué ci-dessous avec une série d’éléments ordonnés (ici, une liste de paires de clés-valeurs):

>>> from collections import OrderedDict
>>> d = OrderedDict([('foo', 5), ('bar', 6)])
>>> print(d)
OrderedDict([('foo', 5), ('bar', 6)])
>>> d['baz'] = 7
>>> print(d)
OrderedDict([('foo', 5), ('bar', 6), ('baz', 7)])
>>> d['foobar'] = 8
>>> print(d)
OrderedDict([('foo', 5), ('bar', 6), ('baz', 7), ('foobar', 8)])

Ou nous pouvons créer un OrderedDict vide, puis ajouter des éléments:

>>> o = OrderedDict()
>>> o['key1'] = "value1"
>>> o['key2'] = "value2"
>>> print(o)
OrderedDict([('key1', 'value1'), ('key2', 'value2')])

L'itération via un OrderedDict permet l'accès à la clé dans l'ordre dans OrderedDict ils ont été ajoutés.

Que se passe-t-il si nous attribuons une nouvelle valeur à une clé existante?

>>> d['foo'] = 4
>>> print(d)
OrderedDict([('foo', 4), ('bar', 6), ('baz', 7), ('foobar', 8)])

La clé conserve sa place d'origine dans le OrderedDict .