Die Reihenfolge der Schlüssel in dictionaries

Code:

d = {'a': 0, 'b': 1, 'c': 2}
l = d.keys()

print l

Diese Drucke ['a', 'c', 'b']. Ich bin mir nicht sicher, wie die Methode keys() bestimmt die Reihenfolge der keywords innerhalb l. Allerdings würde ich gerne können ermittelt werden die keywords in der "richtigen" Reihenfolge. Die richtige Reihenfolge natürlich würde die Liste erstellen ['a', 'b', 'c'].

  • Wenn Python dictionaries sind, wie die meisten, die Sie eigentlich sind hash-Tabellen. Unter anderem bedeutet das, dass die Reihenfolge der Schlüssel ist nicht garantiert oder festgelegt. Insbesondere würde es mich nicht erinnern, die Reihenfolge, in der die Schlüssel werden Hinzugefügt.
  • mögliche Duplikate von Warum ist python Bestellung mein Wörterbuch wie so?
  • Diese grösste Teil von essentually bedeutet, dass Ihr Programm wird indeterministic wenn Sie die Schleife über die Elemente, die in einem Wörterbuch?
  • Ich würde nicht so weit gehen; es ist immer noch sehr vorhersehbares Verhalten gibt. Jede volle iteration sieht genau jedes Schlüssel/Wert-paar. Und in den meisten Sprachen, werden Sie auch sehen, wie Sie in der gleichen Reihenfolge jedes mal. Es sei denn, die docs Garantie einer bestimmten Reihenfolge, aber Sie darf nicht damit rechnen, dass es die Reihenfolge, die Sie wollen. (Einige Sprachen (wie Perl) tatsächlich in zufälliger Reihenfolge ein bisschen-angeblich aus Sicherheitsgründen, aber ich denke, es ist wirklich nur schütteln Sie Locker aus der Gewohnheit, sich auf unbestimmte Verhalten. 🙂 Ich glaube nicht, Python ist ganz böse, aber eh...)
  • Die Bestellung werden die gleichen sein, die Bereitstellung der dict wurde nicht geändert. Aus der Anleitung: "Wenn items(), keys(), values(), iteritems(), iterkeys(), und itervalues() aufgerufen, mit keine eingreifenden änderungen an dem Wörterbuch, die Listen werden direkt entsprechen. Dies ermöglicht die Erstellung von (Wert, Schlüssel) Paare mit zip(): Paare = zip(d....Werte(), d....keys())."
  • Dies ist nicht für mich arbeiten, zumindest nicht in python 3.4. Ich bin der Erstellung einer einfachen 4-Tasten-Wörterbuch und sofort eine Schleife über mit .- Tasten(), und die Ordnung verloren.
  • 2.7.10 python: >>> d = {'was':1, '': 2, 'Teufel':3, 'is':4, 'dies':5} >>> d....keys() ['dies', 'was', 'Teufel', 'das', 'ist']
  • Ich denke, was steveayre gemeint ist, dass die Reihenfolge ist die gleiche, zwischen dem, was Sie erhalten unter Verwendung der verschiedenen Methoden erwähnt, nicht das gleiche wie die ordrer, in denen die Elemente geschrieben wurden.

Schreibe einen Kommentar