Heim  >  Artikel  >  Backend-Entwicklung  >  Warum sind Wörterbuchschlüssel in älteren Python-Versionen nicht immer geordnet?

Warum sind Wörterbuchschlüssel in älteren Python-Versionen nicht immer geordnet?

Susan Sarandon
Susan SarandonOriginal
2024-11-19 04:23:02274Durchsuche

Why Are Dictionary Keys in Older Python Versions Not Always Ordered?

Reihenfolge der Schlüssel in Wörterbüchern in alten Versionen von Python

In Python-Versionen vor 3.6 war die Reihenfolge der Schlüssel in Wörterbüchern nicht garantiert. Dies könnte zu unerwarteten Ergebnissen führen, wenn ein Wörterbuch durchlaufen oder auf dessen Schlüssel zugegriffen wird.

Um das Problem zu verstehen, betrachten Sie den folgenden Code:

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

In diesem Beispiel die Methode „keys()“. gibt eine Liste der Schlüssel im Wörterbuch zurück. Die Reihenfolge der Schlüssel in der Liste ist jedoch nicht garantiert. In Python-Versionen 2.7 und früher wurden die Schlüssel in der Einfügereihenfolge zurückgegeben. Ab Python 3.0 wurden die Schlüssel jedoch in willkürlicher Reihenfolge zurückgegeben.

Diese Inkonsistenz kann problematisch sein, wenn Sie sich auf die Reihenfolge der Schlüssel in einem Wörterbuch verlassen. Wenn Sie beispielsweise ein Wörterbuch verwenden, um die Elemente einer Einkaufsliste zu speichern, können Sie davon ausgehen, dass die Schlüssel in der Reihenfolge zurückgegeben werden, in der Sie sie dem Wörterbuch hinzugefügt haben. In Python-Versionen ab 3.0 ist dies jedoch nicht garantiert顺序的保证.以下代码展示了如何使用 OrderedDict:

另一个选择是使用 sorted()-Funktion zum Sortieren der Schlüssel in aufsteigender Reihenfolge. Dies erfordert jedoch einen zusätzlichen Schritt und ist möglicherweise nicht immer das gewünschte Verhalten.
from collections import OrderedDict

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

Für Python-Versionen 3.6 und höher behalten Wörterbücher standardmäßig die Einfügereihenfolge bei. Es wird jedoch weiterhin empfohlen, OrderedDict zu verwenden, wenn Sie eine garantierte Einfügereihenfolge über verschiedene Python-Implementierungen hinweg benötigen.

Das obige ist der detaillierte Inhalt vonWarum sind Wörterbuchschlüssel in älteren Python-Versionen nicht immer geordnet?. 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