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.

Respuestas a la pregunta(1)

Su respuesta a la pregunta