Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich aus einem Python-Wörterbuch eine sortierte, geordnete Sammlung erstellen?

Wie kann ich aus einem Python-Wörterbuch eine sortierte, geordnete Sammlung erstellen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-28 22:28:16714Durchsuche

How Can I Create a Sorted, Ordered Collection from a Python Dictionary?

Sortieren eines Wörterbuchs nach Schlüssel: Erwerben einer geordneten Sammlung

Die eigentliche Natur der Python-Wörterbücher ist ungeordnet, mit Ausnahme der Einführung von Python 3.7. Während das Sortieren der (Schlüssel-Wert-)Paare als Lösung erscheinen mag, ist es wichtig anzuerkennen, dass die Beibehaltung der sortierten Reihenfolge beim Zurückspeichern der Elemente in ein Wörterbuch nicht möglich ist.

Um nahtlos eine geordnete Sammlung basierend auf zu erstellen Schlüsselwerten überwiegt die Verwendung der OrderedDict-Klasse als optimaler Ansatz. Diese Klasse verfügt über die einzigartige Fähigkeit, die Einfügereihenfolge ihrer Elemente beizubehalten:

import collections

d = {2: 3, 1: 89, 4: 5, 3: 0}

# Construct an OrderedDict from sorted key-value pairs
od = collections.OrderedDict(sorted(d.items()))

print(od)  # OrderedDict([(1, 89), (2, 3), (3, 0), (4, 5)])

Obwohl die gedruckte Darstellung von od variieren kann, behält sie die gewünschte Reihenfolge bei nachfolgenden Interaktionen bei:

print(od[1])  # 89
print(od[3])  # 0

for k, v in od.items():
    print(k, v)  # 1 89, 2 3, 3 0, 4 5

Überlegungen für Python 3-Benutzer

Python 3-Benutzer sollten das verwenden .items()-Methode anstelle von .iteritems() beim Durchlaufen des OrderedDict zur Wahrung der Kompatibilität:

for k, v in od.items():
    print(k, v)  # 1 89, 2 3, 3 0, 4 5

Das obige ist der detaillierte Inhalt vonWie kann ich aus einem Python-Wörterbuch eine sortierte, geordnete Sammlung erstellen?. 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