Praktische Anwendungsfälle für defaultdict
Das defaultdict
ist eine vielseitige Datenstruktur, die in einer Vielzahl von Szenarien eingesetzt werden kann. Hier sind einige praktische Anwendungsfälle für das defaultdict
:
Zählen von Vorkommen
Ein häufiger Anwendungsfall für das defaultdict
ist das Zählen der Vorkommen von Elementen in einer Liste oder Sequenz. Indem Sie ein defaultdict
mit einem Standardwert von 0
verwenden, können Sie leicht die Anzahl für jedes Element verfolgen.
from collections import defaultdict
## Count the occurrences of words in a sentence
sentence = "the quick brown fox jumps over the lazy dog"
word_count = defaultdict(int)
for word in sentence.split():
word_count[word] += 1
print(dict(word_count))
Ausgabe:
{'the': 2, 'quick': 1, 'brown': 1, 'fox': 1, 'jumps': 1, 'over': 1, 'lazy': 1, 'dog': 1}
Gruppieren von Daten
Ein weiterer häufiger Anwendungsfall für das defaultdict
ist das Gruppieren von Daten anhand eines Schlüssels. Indem Sie ein defaultdict
mit einem Standardwert einer leeren Liste oder eines leeren Sets verwenden, können Sie leicht Werte der entsprechenden Liste oder des Sets hinzufügen.
from collections import defaultdict
## Group students by their grades
students = [
{"name": "Alice", "grade": "A"},
{"name": "Bob", "grade": "B"},
{"name": "Charlie", "grade": "A"},
{"name": "David", "grade": "C"},
{"name": "Eve", "grade": "B"}
]
grade_groups = defaultdict(list)
for student in students:
grade_groups[student["grade"]].append(student["name"])
print(dict(grade_groups))
Ausgabe:
{'A': ['Alice', 'Charlie'], 'B': ['Bob', 'Eve'], 'C': ['David']}
Erstellen von Bäumen und verschachtelten Strukturen
Das defaultdict
kann auch verwendet werden, um baumartige Datenstrukturen oder verschachtelte Wörterbücher zu erstellen. Indem Sie ein defaultdict
mit einem Standardwert eines anderen defaultdict
verwenden, können Sie eine hierarchische Datenstruktur erstellen, die leicht durchlaufen und manipuliert werden kann.
from collections import defaultdict
## Build a nested dictionary
data = defaultdict(lambda: defaultdict(int))
data["fruits"]["apples"] = 5
data["fruits"]["bananas"] = 3
data["vegetables"]["carrots"] = 10
data["vegetables"]["broccoli"] = 7
print(dict(data))
Ausgabe:
{'fruits': {'apples': 5, 'bananas': 3}, 'vegetables': {'carrots': 10, 'broccoli': 7}}
Dies sind nur einige Beispiele für die praktischen Anwendungsfälle des defaultdict
in Python. Indem Sie seine Fähigkeit nutzen, Standardwerte für fehlende Schlüssel bereitzustellen, können Sie kompakteren und robusteren Code schreiben, der Randfälle eleganter behandelt.