Dado que la última versión de Python conserva el orden de inserción de dict, ¿cambiará el significado de igualdad (==)?

8

En la última versión de Python, dict conserva el orden de inserción. ¿Hay algún cambio en términos de igualdad? Por ejemplo, actualmente funciona a continuación. Dado que el orden de inserción será importante, ¿puede cambiar esto en el futuro?

Pregunto porque hay un cambio fundamental: anteriormente == funcionó porque el orden de inserción no era importante ya que se consideraba no ordenado. Ahora que está ordenado, ¿puede cambiar el significado de igualdad?

d1={'a':1,'b':2}
d2={'b':2,'a':1}
print(d1==d2)
True

l1=['a','b']
l2=['b','a']
print(l1==l2)
False
variable
fuente
44
No, este significado no cambiará.
L3viathan

Respuestas:

2

La documentación oficial de Python establece lo siguiente sobre el operador == con respecto a los diccionarios:

Las asignaciones (instancias de dict) se comparan igual si y solo si tienen pares iguales (clave, valor). La comparación de igualdad de las claves y los valores impone la reflexividad.

Por lo tanto, el orden de inserción no se considera, y debido a la compatibilidad con versiones anteriores, probablemente nunca lo será, ya que probablemente no tendría sentido o no sería intuitivo, en casi todos los casos.

averresen
fuente