DefaultDict
Defaultdict(int)
DefaultDict
ist eine Unterklasse von dict, die einen Standardwert für einen nicht existierenden Schlüssel liefert. Erstellen wir in default_dict1.py
ein DefaultDict
mit Standardwerten 0
und zählen die Vorkommen von Wörtern in einem Satz:
from collections import defaultdict
sentence = "the quick brown fox jumps over the lazy dog"
word_count1 = defaultdict(int)
for word in sentence.split():
## Zählt die Vorkommen von Wörtern
word_count1[word] += 1
print(dict(word_count1))
Führen Sie dann das Skript im Terminal aus:
python default_dict1.py
Ausgabe:
{'the': 2, 'quick': 1, 'brown': 1, 'fox': 1, 'jumps': 1, 'over': 1, 'lazy': 1, 'dog': 1}
Wenn wir DefaultDict
nicht verwendet hätten, würde der aufrufende Code so aussehen:
sentence = "the quick brown fox jumps over the lazy dog"
result = {}
for word in sentence.split():
if word in result:
result[word] += 1
else:
result[word] = 1
print(result)
Defaultdict(list)
Als nächstes erstellen wir in default_dict2.py
ein DefaultDict
mit Standardwerten []
und speichern die Anzahl in jedem Buchstaben:
from collections import defaultdict
data = [('a', 1), ('a', 1), ('a', 3), ('b', 1), ('b', 2), ('b', 3)]
word_count2 = defaultdict(list)
for (key,value) in data:
## Speichert die Anzahl in jedem Buchstaben
word_count2[key].append(value)
print(dict(word_count2))
Führen Sie dann das Skript im Terminal aus:
python default_dict2.py
Ausgabe:
{'a': [1, 1, 3], 'b': [1, 2, 3]}
Wenn wir DefaultDict
nicht verwendet hätten, würde der aufrufende Code so aussehen:
data = [('a', 1), ('a', 1), ('a', 3), ('b', 1), ('b', 2), ('b', 3)]
result = {}
for (key, value) in data:
if key in result:
result[key].append(value)
else:
result[key] = [value]
print(result)
Defaultdict(set)
Schließlich erstellen wir in default_dict3.py
ein DefaultDict
mit Standardwerten set()
und speichern die nicht wiederholte Anzahl in jedem Buchstaben:
from collections import defaultdict
data = [('a', 1), ('a', 1), ('a', 3), ('b', 1), ('b', 2), ('b', 3)]
word_count3 = defaultdict(set)
for (key,value) in data:
## Speichert die nicht wiederholte Anzahl in jedem Buchstaben
word_count3[key].add(value)
print(dict(word_count3))
Führen Sie dann das Skript im Terminal aus:
python default_dict3.py
Ausgabe:
{'a': {1, 3}, 'b': {1, 2, 3}}
Wenn wir DefaultDict
nicht verwendet hätten, würde der aufrufende Code so aussehen:
data = [('a', 1), ('a', 1), ('a', 3), ('b', 1), ('b', 2), ('b', 3)]
result = {}
for (key, value) in data:
if key in result:
result[key].add(value)
else:
result[key] = {value}
print(result)