Heim >Backend-Entwicklung >Python-Tutorial >Wie behalte ich die Reihenfolge der Schlüssel in Python-Wörterbüchern bei?

Wie behalte ich die Reihenfolge der Schlüssel in Python-Wörterbüchern bei?

DDD
DDDOriginal
2024-12-27 07:12:08666Durchsuche

How Do I Preserve Key Order in Python Dictionaries?

Aufrechterhaltung der Ordnung in Wörterbüchern

Problem

Sie definieren ein Wörterbuch in einer bestimmten Reihenfolge und möchten diese Reihenfolge beibehalten, wenn Sie darauf zugreifen oder darüber iterieren.

Lösung: Einfügereihenfolge in Python 3.6

Beginnend mit Python 3.6 behalten Wörterbücher standardmäßig die Einfügereihenfolge bei. Dies wird mithilfe einer Array-basierten Hash-Tabelle erreicht, in der die Schlüssel und Werte in der Reihenfolge gespeichert werden, in der sie hinzugefügt werden.

Zum Beispiel behält die folgende Wörterbuchdeklaration die Schlüsselreihenfolge bei:

d = {'ac': 33, 'gw': 20, 'ap': 102, 'za': 321, 'bs': 10}

Dieses Verhalten war ursprünglich ein Implementierungsdetail in Python 3.6. In Python 3.7 wurde es jedoch zu einer Sprachspezifikation, die sicherstellte, dass alle Python-Implementierungen die Wörterbuchreihenfolge beibehalten.

Anwendungsfälle der Beibehaltung der Reihenfolge

Die Verwendung von Wörterbüchern mit beibehaltener Reihenfolge kann in Anwendungen von Vorteil sein, bei denen die Die Reihenfolge der Schlüssel und Werte ist von Bedeutung, wie zum Beispiel:

  • Zeitstempel chronologisch zu Ereignissen zuordnen Reihenfolge
  • Benutzereinstellungen in der Reihenfolge speichern, in der sie definiert wurden
  • Warteschlangen oder Stapel darstellen

Alternative: OrderedDict

Während Wörterbücher in Python 3.6 erhalten bleiben order können Sie immer noch auf Situationen stoßen, in denen die zusätzliche Funktionalität der Klasse „collections.OrderedDict()“ nützlich ist. Es bietet Funktionen wie:

  • Reversibilität: Es kann sowohl in Vorwärts- als auch in Rückwärtsreihenfolge iteriert werden.
  • Neuordnung: Sie können Elemente mit der Methode move_to_end() neu anordnen.

Fazit

Python 3.6 und spätere Versionen integrieren standardmäßig die Einfügereihenfolge in Wörterbücher und stellen Folgendes bereit: bequeme und vorhersehbare Handhabung von Schlüssel-Wert-Paaren in ihrer deklarierten Reihenfolge. Für spezielle Anforderungen, bei denen reversible oder neu anordbare Wörterbücher erforderlich sind, bleibt die OrderedDict-Klasse jedoch weiterhin eine praktikable Option.

Das obige ist der detaillierte Inhalt vonWie behalte ich die Reihenfolge der Schlüssel in Python-Wörterbüchern bei?. 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