So sortieren Sie ein Wörterbuch nach Wert in Python
Erfahren Sie, wie Sie ein Python-Wörterbuch nach seinen Werten sortieren. Entdecken Sie das Sortieren mit sorted(), benutzerdefinierten Schlüssel-Lambdas und dem Erstellen geordneter Diktatstrukturen.
Übersicht
Während Wörterbücher in erster Linie für schnelle Suchvorgänge mithilfe eindeutiger Schlüssel erstellt werden, müssen Sie Wörterbuchelemente häufig anhand ihrer Werte sortieren. Sortieren Sie beispielsweise Schüler nach ihren Prüfungsnoten, listen Sie Produkte vom günstigsten zum teuersten auf oder ordnen Sie die Wortanzahl nach Häufigkeit.
In Python können Sie ein Wörterbuch nicht direkt direkt sortieren, da Standard-Wörterbuchstrukturen keine Sortiermethoden wie Listen unterstützen. Stattdessen besteht der Standardansatz darin, die Elemente des Wörterbuchs als Tupel mithilfe der Methode „.items()“ abzurufen, diese Tupel mithilfe der integrierten Funktion „sorted()“ mit einem benutzerdefinierten Sortierschlüssel zu sortieren und dann das Wörterbuch aus den sortierten Elementen neu zu erstellen.
Der Sortierschlüssel ist normalerweise eine Lambda-Funktion, die das zweite Element des Tupels (den Wörterbuchwert) zurückgibt: „key=lambda item: item[1]“. SeitPython 3.7+ behalten Standardwörterbücher die Einfügereihenfolge bei. Wenn Sie die sortierte Liste der Tupel mit dem Konstruktor „dict()“ wieder in ein Wörterbuch umwandeln, erhalten Sie ein sauberes, sortiertes Wörterbuch, das zur Iteration bereit ist.
Code- und Ausführungsausgabe
Dieses Skript demonstriert das Sortieren eines Wörterbuchs mit Testergebnissen nach Werten in aufsteigender und absteigender Reihenfolge mithilfe von Lambda-Funktionen.
scores = {"Alice": 88, "Bob": 75, "Charlie": 95, "David": 82}
print("Original dictionary:", scores)
# 1. Sort by values (ascending order)
sorted_ascending = dict(sorted(scores.items(), key=lambda item: item[1]))
print("Sorted ascending:", sorted_ascending)
# 2. Sort by values (descending order)
sorted_descending = dict(sorted(scores.items(), key=lambda item: item[1], reverse=True))
print("Sorted descending:", sorted_descending)
# 3. sorting by keys for comparison
sorted_keys = dict(sorted(scores.items(), key=lambda item: item[0]))
print("Sorted by keys:", sorted_keys)Original dictionary: {'Alice': 88, 'Bob': 75, 'Charlie': 95, 'David': 82}
Sorted ascending: {'Bob': 75, 'David': 82, 'Alice': 88, 'Charlie': 95}
Sorted descending: {'Charlie': 95, 'Alice': 88, 'David': 82, 'Bob': 75}
Sorted by keys: {'Alice': 88, 'Bob': 75, 'Charlie': 95, 'David': 82}Schrittweise Umsetzung
- Rufen Sie my_dict.items() auf, um Schlüssel-Wert-Paare als Liste von Tupeln abzurufen.
- Übergeben Sie die Wörterbuchelemente an die Funktion sorted().
- Geben Sie key=lambda item: item[1] an, um die Funktion sorted() anzuweisen, basierend auf dem Wert (zweites Element jedes Tupels) zu sortieren.
- Übergeben Sie „reverse=True“ als optionales Argument, um die Elemente in absteigender Reihenfolge zu sortieren.
- Erstellen Sie das sortierte Wörterbuch neu, indem Sie die sortierte Liste der Tupel an den dict()-Konstruktor übergeben.
Häufig gestellte Fragen
Was bedeutet key=lambda item: item[1]?
Die Funktion sorted() übergibt jedes Element der Elementsequenz (ein Tupel von (Schlüssel, Wert)) an die Lambda-Funktion. item[1] extrahiert die Wertkomponente und weist Python an, die Tupel nach Wert zu sortieren.
Beeinflusst das Sortieren eines Wörterbuchs dessen Schlüsselsuchgeschwindigkeit?
Nein, die Schlüsselsuche bleibt bei einer durchschnittlichen Zeitkomplexität von O(1), da durch die Sortierung nur die Iterationssequenz und nicht die zugrunde liegende Hash-Tabellenstruktur geändert wird.
Verwandte Themen
Erfahren Sie, wie Sie eine Liste in Python mit der Methode sort() und der Funktion sorted() sortieren. Entdecken Sie Beispiele für benutzerdefinierte Schlüsselsortierung und umgekehrte Reihenfolge.
So durchlaufen Sie ein Wörterbuch in PythonErfahren Sie, wie Sie ein Python-Wörterbuch in einer Schleife durchlaufen oder iterieren. Entdecken Sie Methoden zum Durchlaufen von Schlüsseln, Werten und Schlüssel-Wert-Paaren anhand sauberer, ausführbarer Beispiele.
Empfohlene Python-Ressourcen
Erweitern Sie Ihr Wissen mit zugehörigen interaktiven Tutorials, Spickzetteln und Codevergleichen.
Python-Schleifen
Erfahren Sie, wie Sie Python-Schleifen zum Durchlaufen von Daten verwenden. Beherrschen Sie Best Practices für For-Schleifen, While-Schleifen, Break, Continue und Loop anhand interaktiver Beispiele.
Spickzettel für Python-Wörterbuchmethoden
Lernen Sie Python-Wörterbuchmethoden. Vollständiges Referenzhandbuch für das Einfügen, Abrufen, Aktualisieren und Überprüfen von Schlüssel-Wert-Paaren.
Python vs. Ruby: Skripterstellung, Web-Frameworks und Philosophie
Vergleichen Sie Python und Ruby. Lernen Sie die subtilen Unterschiede in ihren Philosophien, ihrer Syntaxeleganz, ihren Web-Frameworks (Djangovs. Rails) und ihren Ausführungsstilen kennen.