Direkt zum Inhalt

Wie man in Python ein Wörterbuch nach Wert sortiert

Lerne effiziente Methoden, um ein Wörterbuch in Python nach Werten zu sortieren. Entdecke die Sortierung in aufsteigender und absteigender Reihenfolge sowie Bonustipps für die Schlüsselsortierung.
Aktualisierte 16. Jan. 2025  · 5 Min. Lesezeit

Sortieren ist eine grundlegende Operation bei der Datenbearbeitung, und Wörterbücher in Python sind da keine Ausnahme. Egal, ob wir an einem komplexen Datenanalyseprojekt oder einem einfachen Skript arbeiten, es kann sehr nützlich sein zu wissen, wie man ein Wörterbuch effizient nach Werten sortiert.

In diesem Artikel stellen wir dir die verschiedenen Methoden vor, mit denen du in Python Wörterbücher nach ihren Werten sortieren kannst, damit du deine Daten nach Bedarf organisieren kannst.

Die kurze Antwort: Wie man in Python ein Wörterbuch nach Wert sortiert

Um ein Wörterbuch schnell nach Werten zu sortieren, können wir die in Python eingebaute Funktion .sorted() in Kombination mit einer Funktion lambda verwenden. Diese Methode ist für die meisten Anwendungsfälle einfach und effizient.

student_scores = {
    'Alex': 88,
    'Ben': 75,
    'Cyrus': 93,
    'Denver': 85
}
sorted_by_values = dict(sorted(student_scores.items(), key=lambda item: item[1]))
{'Ben': 75, 'Denver': 85, 'Alex': 88, 'Cyrus': 93}

Gehen wir einen Schritt zurück, um die Python-Wörterbücher zu verstehen und zu begreifen, warum wir sie sortieren müssen.

Was sind Python-Wörterbücher?

Python Wörterbücher sind eine Art von Datenstruktur, die Daten in Schlüssel-Wert-Paaren speichert. Sie sind sehr vielseitig und ermöglichen schnelle Abfragen, Einfügungen und Löschungen. Hier ist ein einfaches Beispiel:

student_scores = {
    'Alex': 88,
    'Ben': 75,
    'Cyrus': 93,
    'Denver': 85
}

Im obigen Wörterbuch sind die Namen der Schüler die Schlüssel und ihre Noten die Werte. 

Wörterbücher sind in vielen Situationen hilfreich, zum Beispiel wenn wir Daten effizient speichern und abrufen müssen. Manchmal ist es jedoch notwendig, die Daten nach Werten statt nach Schlüsseln zu sortieren - zum Beispiel, wenn wir die Schüler nach ihren Noten einstufen wollen.

Wie man in Python ein Wörterbuch nach Wert sortiert

Schauen wir uns nun die Funktion .sorted() in Python genauer an und wie man sie speziell für die Sortierung von Wörterbüchern nach Werten verwendet.

Wie man ein Wörterbuch nach Wert sortiert mit .sorted()

Die Funktion.sorted() ist ein leistungsstarkes und flexibles Werkzeug zum Sortieren in Python. Um ein Wörterbuch nach seinen Werten zu sortieren, können wir eine Lambda-Funktion verwenden, um anzugeben, dass die Sortierung auf den Werten des Wörterbuchs basieren soll.

student_scores = {
    'Alex': 88,
    'Ben': 75,
    'Cyrus': 93,
    'Denver': 85
}
sorted_by_values = dict(sorted(student_scores.items(), key=lambda item: item[1]))
print(sorted_by_values)
{'Ben': 75, 'Denver': 85, 'Alex': 88, 'Cyrus': 93}

In diesem Beispiel gibt student_scores.items() ein View-Objekt zurück, das eine Liste der Schlüssel-Wert-Tupelpaare des Wörterbuchs anzeigt. Die Funktion .sorted() sortiert diese Paare nach den Werten (item[1] ), und dict() wandelt die sortierte Liste wieder in ein Wörterbuch um.

Wie sortiere ich ein Wörterbuch nach Wert in absteigender oder aufsteigender Reihenfolge?

Die Funktion .sorted() sortiert standardmäßig in aufsteigender Reihenfolge. Je nach Situation können wir dies jedoch leicht ändern und in absteigender oder aufsteigender Reihenfolge sortieren, indem wir den Parameter reverse auf True oder False setzen.

Wie sortiere ich ein Wörterbuch in aufsteigender Reihenfolge?

Wie bereits erwähnt, wird ein Wörterbuch standardmäßig in aufsteigender Reihenfolge sortiert, wenn du die Funktion.sorted() verwendest . Wir können auch eine aufsteigende Reihenfolge erreichen, indem wir den Parameter reverse auf False setzen.

sorted_by_values_asc = dict(sorted(student_scores.items(), key=lambda item: item[1], reverse=False))
print(sorted_by_values_asc)
{'Ben': 75, 'Denver': 85, 'Alex': 88,  'Cyrus': 93}

Wie sortiere ich ein Wörterbuch in absteigender Reihenfolge?

Wenn wir in aufsteigender Reihenfolge sortieren wollen, können wir den reverse Parameter auf True.

sorted_by_values_desc = dict(sorted(student_scores.items(), key=lambda item: item[1], reverse=True))
print(sorted_by_values_desc)
{'Cyrus': 93, 'Alex': 88, 'Denver': 85, 'Ben': 75}

Bonus: Wie man in Python ein Wörterbuch nach Schlüssel sortiert

Dieser Artikel konzentriert sich zwar auf das Sortieren nach Werten, aber es ist auch hilfreich zu wissen, wie man ein Wörterbuch nach seinen Schlüsseln sortiert. Dies kann auf ähnliche Weise mit der Funktion .sorted() geschehen.

sorted_by_keys = dict(sorted(student_scores.items()))
print(sorted_by_keys)
{'Alex': 88, 'Ben': 75, 'Cyrus': 93, 'Denver': 85}

Für eine absteigende Reihenfolge, setzen Sie einfach reverse=True:

sorted_by_keys_desc = dict(sorted(student_scores.items(), reverse=True))
print(sorted_by_keys_desc)
{'Denver': 85', 'Cyrus': 93, 'Ben': 75, 'Alex': 88}

Fazit

Das Sortieren eines Wörterbuchs nach seinen Werten in Python ist eine gängige Aufgabe, die mit der Funktion .sorted() leicht zu erledigen ist. Unabhängig davon, ob wir die Daten in aufsteigender oder absteigender Reihenfolge benötigen, wird das Verständnis dieser Techniken unsere Datenmanipulationsaufgaben einfacher und effizienter machen. Wenn wir diese Sortiermethoden beherrschen, können wir sicherstellen, dass unsere Daten immer so organisiert sind, dass sie unseren Bedürfnissen am besten entsprechen.

FAQs

Q1: Kann ich ein Wörterbuch nach Werten sortieren, wenn die Werte Strings und keine Zahlen sind?

A1: Ja, wir können ein Wörterbuch nach Werten sortieren, auch wenn die Werte Strings sind. Die Funktion .sorted() sortiert die Werte alphabetisch in auf- oder absteigender Reihenfolge, genau wie bei Zahlen.

Q2: Wie kann ich ein Wörterbuch nach Werten sortieren, wenn es verschachtelte Wörterbücher enthält?

A2: Um ein Wörterbuch mit verschachtelten Wörterbüchern zu sortieren, müssen wir eine eigene Sortierfunktion definieren, die die relevanten verschachtelten Werte extrahiert und vergleicht. Dies erfordert eine komplexere Lambda-Funktion oder eine separate Funktion, um den Vergleich durchzuführen.

Q3: Kann ich ein Wörterbuch an Ort und Stelle nach Werten sortieren, ohne ein neues Wörterbuch zu erstellen?

A3: Nein, Wörterbücher in Python sind ab Version 3.7 von Natur aus ungeordnete Sammlungen, und auch wenn sie ab Python 3.7 die Einfügereihenfolge beibehalten, gibt es keine eingebaute Methode, um sie an Ort und Stelle zu sortieren. Das Sortieren eines Wörterbuchs führt immer dazu, dass ein neues Wörterbuch mit der gewünschten Reihenfolge erstellt wird.

Q4: Wie hoch ist der Zeitaufwand für das Sortieren eines Wörterbuchs nach Werten in Python?

A4: Die Zeitkomplexität beim Sortieren eines Wörterbuchs nach Werten mit der Funktion .sorted() ist O(n log n), wobei n die Anzahl der Schlüssel-Wert-Paare im Wörterbuch ist. Das liegt daran, dass .sorted() intern Timsort verwendet, einen hybriden Sortieralgorithmus mit dieser Komplexität.

Q5: Wird durch das Sortieren eines Wörterbuchs nach Werten das ursprüngliche Wörterbuch verändert?

A5: Nein, wenn du ein Wörterbuch mit der Funktion .sorted() nach Werten sortierst, wird ein neues Wörterbuch erstellt. Das ursprüngliche Wörterbuch bleibt unverändert.


Neetika Khandelwal's photo
Author
Neetika Khandelwal
LinkedIn
Ich bin Java-Entwickler und ein erfahrener technischer Autor, der sich auf Data Science, künstliche Intelligenz (AI) und Java-Programmierung spezialisiert hat. Mit mehr als 3 Jahren Erfahrung in der Softwareentwicklung habe ich mir ein gutes Fachwissen angeeignet, um robuste, skalierbare Anwendungen zu erstellen und die Vielseitigkeit von Java zur Lösung komplexer Probleme zu nutzen. Es ist meine Leidenschaft, mein Wissen mit der breiten Tech-Community zu teilen. Mit umfassenden Fachartikeln, Tutorials und Leitfäden versuche ich, komplizierte Themen aus den Bereichen Data Science und KI zu entmystifizieren und sie für Anfänger und erfahrene Profis zugänglich zu machen. Derzeit habe ich über 125+ Blogs veröffentlicht.
Themen

Lerne mehr über Python mit diesen Kursen!

Zertifizierung verfügbar

Kurs

Einführung in Python

4 hr
5.9M
Beherrsche die Grundlagen der Datenanalyse mit Python in nur vier Stunden. Dieser Online-Kurs führt in die Python-Schnittstelle ein und stellt beliebte Pakete vor.
Siehe DetailsRight Arrow
Kurs starten
Mehr anzeigenRight Arrow