Dict / Set Parsing Order Consistency

Container, die hashable Objekte enthalten (z. B.dict Tasten oderset Artikel). Als solches kann ein Wörterbuch nur einen Schlüssel mit dem Wert @ habe1, 1.0 oderTrue etc. (Anmerkung: etwas vereinfacht - Hash-Kollisionen sind erlaubt, aber diese Werte werden als gleich angesehen)

Meine Frage lautet: Ist die Analysereihenfolge genau definiert und ist das resultierende Objekt über Implementierungen hinweg vorhersehbar? Zum Beispiel interpretiert OSX Python 2.7.11 und 3.5.1dict wie so:

>>> { True: 'a', 1: 'b', 1.0: 'c', (1+0j): 'd' }
{True: 'd'}

In diesem Fall scheinen der erste Schlüssel und der letzte Wert erhalten zu sein.

Ähnlich, im Fall vonset:

>>> { True, 1, 1.0, (1+0j) }
set([(1+0j)])

Hier scheint es, dass diezuletz item bleibt erhalten.

Aber (wie in den Kommentaren erwähnt):

>>> set([True, 1, 1.0])
set([True])

Nun bleibt das erste im Iterable erhalten.

Die Dokumentation stellt fest, dass die Reihenfolge der Elemente (z. B. indict.items) ist undefiniert, meine Frage bezieht sich jedoch auf das Ergebnis von konstruieren dict oderset objects.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage