Dict / Set Consistencia de orden de análisis
Contenedores que toman objetos hashables (comodict
llaves oset
artículos). Como tal, un diccionario solo puede tener una clave con el valor1
, 1.0
oTrue
etc. (nota: algo simplificado: se permiten colisiones hash, pero estos valores se consideran iguales)
Mi pregunta es: ¿el orden de análisis está bien definido y el objeto resultante es predecible en todas las implementaciones? Por ejemplo, OSX Python 2.7.11 y 3.5.1 interpretadict
al igual que:
>>> { True: 'a', 1: 'b', 1.0: 'c', (1+0j): 'd' }
{True: 'd'}
En este caso, parece que se conservan la primera clave y el último valor.
Similar, en el caso deset
:
>>> { True, 1, 1.0, (1+0j) }
set([(1+0j)])
Aquí parece que elúltimo El artículo se conserva.
Pero (como se menciona en los comentarios):
>>> set([True, 1, 1.0])
set([True])
Ahora se conserva el primero en el iterable.
La documentación señala que el orden de los elementos (por ejemplo, endict.items
) no está definido, sin embargo, mi pregunta se refiere al resultado deconstruyendo dict
oset
objetos.