Das Python-Standardbibliotheksmodul itertools bietet praktische Funktionen für den Umgang mit Iteratoren. Unter ihnen wird häufig groupby verwendet, aber ich werde es vorstellen, weil viele Leute es nicht wissen. ..
groupby
Eine Funktion, die iterables (Listen, Iteratoren usw.) mit beliebigen Schlüsseln gruppiert. Der Rückgabewert ist ein Iterator des Schlüssels und der Elemente, die zum Schlüssel gehören.
Die an groupby übergebene Iteration muss im Voraus sortiert werden, da die Elemente mit demselben Schlüssel aufeinanderfolgend sein müssen.
Es ist schwierig, ein Bild nur durch Erklären zu erhalten. Schauen wir uns also ein einfaches Beispiel an.
Dies ist ein Beispiel für die Gruppierung einer Liste, deren Elemente ein Tupel aus Buchstaben und Zahlen nach Buchstaben sind.
from itertools import groupby
from operator import itemgetter
a = [("b", 3), ("a", 1), ("c", 2), ("a", 2), ("b", 1)]
a = sorted(a, key=itemgetter(0))
for (k, g) in groupby(a, key=itemgetter(0)):
print("key:" + k)
for item in g:
print(item)
Ausführungsergebnis
key:a
('a', 1)
('a', 2)
key:b
('b', 3)
('b', 1)
key:c
('c', 2)
Wenn Sie groupby ohne Sortierung verwenden, erhalten Sie Folgendes.
:Wenn Sie es ohne Sortierung ausführen...
key:b
('b', 3)
key:a
('a', 1)
key:c
('c', 2)
key:a
('a', 2)
key:b
('b', 1)
Recommended Posts