Desde el registro de cambios de Python 3.7 :
la naturaleza de conservación del orden de inserción de los objetos dict ha sido declarada como parte oficial de la especificación del lenguaje Python.
¿Significaría esto que OrderedDict
se volverá redundante? El único uso que se me ocurre será mantener la compatibilidad con versiones anteriores de Python que no conservan el orden de inserción de los diccionarios normales.
python
python-3.x
dictionary
python-3.7
ordereddict
James Hiew
fuente
fuente
Respuestas:
No, no se volverá redundante en Python 3.7 porque
OrderedDict
no solodict
retiene el orden de inserción, sino que también ofrece un método dependiente del ordenOrderedDict.move_to_end()
, y admitereversed()
iteración *.Además, las comparaciones de igualdad con
OrderedDict
son sensibles al orden y este todavía no es el casodict
en Python 3.7, por ejemplo:>>> OrderedDict([(1,1), (2,2)]) == OrderedDict([(2,2), (1,1)]) False >>> dict([(1,1), (2,2)]) == dict([(2,2), (1,1)]) True
Dos preguntas relevantes aquí y aquí .
* Se agregó soporte para la
reversed()
iteración de Python regulardict
para Python 3.8, consulte el número 33462fuente