Wie hat Python in Versionen vor 3.7 mit der Reihenfolge der Wörterbuchschlüssel umgegangen?

Barbara Streisand
Freigeben: 2024-11-11 17:48:02
Original
922 Leute haben es durchsucht

How did Python handle dictionary key order in versions before 3.7?

Reihenfolge der Schlüssel in Wörterbüchern in früheren Python-Versionen

Beim Abrufen der Schlüssel eines Wörterbuchs mit der Methode „keys()“ in Python-Versionen vor 3.7 wird die Reihenfolge von Die Schlüssel in der zurückgegebenen Liste können willkürlich erscheinen. Diese Unvorhersehbarkeit ist darauf zurückzuführen, wie Python in früheren Versionen mit Wörterbüchern umgegangen ist.

Python 3.7

Ab Python 3.7 behalten Wörterbücher standardmäßig die Einfügereihenfolge bei. Dies bedeutet, dass die Schlüssel in der Ausgabeliste „keys()“ mit der Reihenfolge übereinstimmen, in der sie in das Wörterbuch eingefügt wurden.

Python 3.6 (CPython)

In Python 3.6 (insbesondere der CPython-Implementierung). ), verwenden Wörterbücher standardmäßig auch die Beibehaltung der Einfügungsreihenfolge. Dies gilt jedoch als Implementierungsdetail und seine Zuverlässigkeit über verschiedene Python-Implementierungen hinweg kann nicht garantiert werden.

Python >=2.7 und <3.6

Für Python-Versionen zwischen 2.7 und 3.6 gilt: Die Reihenfolge der Schlüssel in der Liste „keys()“ wird durch eine Hash-Funktion bestimmt. Es wird nicht garantiert, dass diese Hash-Funktion stabil ist, daher kann die Reihenfolge der Schlüssel zwischen den Ausführungen variieren, selbst bei denselben Eingabedaten.

Um die Einfügungsreihenfolge in diesen früheren Versionen von Python sicherzustellen, sollten Sie die Sammlungen verwenden. OrderedDict-Klasse. Diese Klasse garantiert, dass die Schlüssel in der Reihenfolge abgerufen werden, in der sie eingefügt wurden:

import collections

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

print(l)  # Output: ['a', 'b', 'c']
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie hat Python in Versionen vor 3.7 mit der Reihenfolge der Wörterbuchschlüssel umgegangen?. 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