Heim > Backend-Entwicklung > Python-Tutorial > 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
Freigeben: 2024-11-19 04:23:02
Original
380 Leute haben es durchsucht

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)
Nach dem Login kopieren

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']
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage