Depuis le journal des modifications de Python 3.7 :
la nature de préservation de l'ordre d'insertion des objets dict a été déclarée comme faisant partie officielle de la spécification du langage Python.
Cela signifierait-il que OrderedDict
cela deviendrait superflu? La seule utilité à laquelle je pense sera de maintenir la compatibilité ascendante avec les anciennes versions de Python qui ne préservent pas l'ordre d'insertion pour les dictionnaires normaux.
python
python-3.x
dictionary
python-3.7
ordereddict
James Hiew
la source
la source
Réponses:
Non, il ne deviendra pas redondant dans Python 3.7 car ce
OrderedDict
n'est pas seulement undict
qui conserve l'ordre d'insertion, il offre également une méthode dépendante de l'ordreOrderedDict.move_to_end()
et prend en charge l'reversed()
itération *.De plus, les comparaisons d'égalité avec
OrderedDict
sont sensibles à l'ordre et ce n'est toujours pas le casdict
en Python 3.7, par exemple:>>> OrderedDict([(1,1), (2,2)]) == OrderedDict([(2,2), (1,1)]) False >>> dict([(1,1), (2,2)]) == dict([(2,2), (1,1)]) True
Deux questions pertinentes ici et ici .
* La prise en charge de l'
reversed()
itération de Python standarddict
est ajoutée pour Python 3.8, voir issue33462la source