Heim >Backend-Entwicklung >Python-Tutorial >Wie bleibt die Schlüsselreihenfolge in Python-Wörterbüchern erhalten?

Wie bleibt die Schlüsselreihenfolge in Python-Wörterbüchern erhalten?

Susan Sarandon
Susan SarandonOriginal
2024-11-29 09:00:12370Durchsuche

How Do You Preserve Key Order in Python Dictionaries?

Behalten der Reihenfolge der Schlüssel in Python-Wörterbüchern

In älteren Versionen von Python war die Reihenfolge der Schlüssel in Wörterbüchern oft unvorhersehbar. Dies könnte zu Verwirrung und inkonsistenten Ergebnissen beim Zugriff auf Daten führen.

Wie die Reihenfolge der Wörterbuchschlüssel bestimmt wird

Vor Python 3.6 war die Reihenfolge der Schlüssel in Wörterbüchern gleich wird durch den Hashwert der Schlüssel bestimmt. Dies bedeutete, dass sich die Reihenfolge der Schlüssel im Laufe der Zeit ändern konnte, auch wenn die Werte gleich blieben. In dem von Ihnen bereitgestellten Codeblock heißt es beispielsweise:

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

print(l)

Die Reihenfolge der Schlüssel in der resultierenden Liste l ist ['a', 'c', 'b']. Diese Reihenfolge ist nicht garantiert und kann sich in zukünftigen Iterationen der Schleife ändern.

Erzwingen der Schlüsselreihenfolge

Um sicherzustellen, dass die Reihenfolge der Schlüssel beibehalten wird, gibt es mehrere Ansätze kann verwendet werden:

Python 3.7 und Oben

Seit Python 3.7 behalten Wörterbücher standardmäßig die Einfügereihenfolge bei. Das bedeutet, dass Sie sich darauf verlassen können, dass die Reihenfolge der Schlüssel erhalten bleibt.

Python 3.6 (CPython)

Für die CPython-Implementierung von Python 3.6 werden auch Wörterbücher beibehalten Die Einfügereihenfolge wird standardmäßig festgelegt. Dieses Verhalten ist jedoch implementierungsspezifisch und kann nicht für verschiedene Python-Implementierungen garantiert werden.

Python 2.7 und früher

Um die Tastenreihenfolge in Python-Versionen vor 3.6 zu erzwingen können Sie die Klasse „collections.OrderedDict“ verwenden. Diese Klasse behält insbesondere die Reihenfolge der Schlüssel beim Einfügen bei:

from collections import OrderedDict

d = OrderedDict({'a': 0, 'b': 1, 'c': 2})
print(list(d.keys()))  # Output: ['a', 'b', 'c']

Das obige ist der detaillierte Inhalt vonWie bleibt die Schlüsselreihenfolge in Python-Wörterbüchern erhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn