Heim  >  Artikel  >  Backend-Entwicklung  >  Wie hat Python in Versionen vor 3.7 mit der Reihenfolge der Wörterbuchschlüssel umgegangen?

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

Barbara Streisand
Barbara StreisandOriginal
2024-11-11 17:48:02921Durchsuche

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']

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!

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