In Python wird ein Hash (genauer gesagt eine Hash-Tabelle) als Wörterbuch bezeichnet.
Counter und defaultdict, z. B. wenn Sie die Wörterbuchfunktion verwenden, um die Anzahl der Vorkommen jeder KW zu zählen. Es ist gut, eine Unterklasse des Wörterbuchs zu verwenden (: //docs.python.jp/2/library/collections.html#collections.defaultdict). Wenn beispielsweise Counter und defaultdict nicht verwendet werden, ist die folgende redundante Beschreibung erforderlich.
sample1.py
# -*- coding: UTF-8 -*-
#Initialisierung der Wörterbücher
count_by_kw = {}
#KeyError
count_by_kw['apple'] += 1
#Es ist überflüssig, aber Sie müssen schreiben:
if count_by_kw.get('apple'):
count_by_kw['apple'] += 1
else:
count_by_kw['apple'] = 1
Wenn Sie Counter verwenden, können Sie dies einfach wie folgt beschreiben. Sie können auch die Methode most_common verwenden, um Schlüssel in absteigender Reihenfolge des Werts abzurufen.
sample2.py
# -*- coding: UTF-8 -*-
from collections import Counter
#Initialisierung der Wörterbücher
count_by_kw = Counter()
#Kann eine einfache Beschreibung sein
count_by_kw['apple'] += 1
count_by_kw['apple'] += 1
count_by_kw['apple'] += 1
count_by_kw['peach'] += 1
count_by_kw['orange'] += 1
count_by_kw['orange'] += 1
#In absteigender Reihenfolge des Wertes (Apfel-> orange ->Nehmen Sie den Schlüssel zum Pfirsich heraus)
for kw, count in count_by_kw.most_common():
print(kw, count)
Darüber hinaus ist es durch die Kombination von Counter und defaultdict möglich, ein Wörterbuch mit Wörterbüchern zu erstellen. Natürlich können Sie auch die Methode most_common verwenden.
sample3.py
# -*- coding: UTF-8 -*-
from collections import Counter
from collections import defaultdict
#Initialisierung der Wörterbücher
count_by_kw = defaultdict(Counter)
#Wörterbuch Wörterbuch
count_by_kw['category1']['apple'] += 1
count_by_kw['category1']['apple'] += 1
count_by_kw['category1']['orange'] += 1
#Extrahieren Sie Schlüssel und Wert aus dem äußeren Wörterbuch und extrahieren Sie dann Schlüssel und Wert aus dem inneren Wörterbuch
for kw1, counter in count_by_kw.items():
for kw2, count in counter.most_common():
print(kw1, kw2, count)
Recommended Posts