Unerwartet unbekannt !? Python Standard Library Function Groupby

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.

Grundlegende Verwendung

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

Unerwartet unbekannt !? Python Standard Library Function Groupby
Nicht überraschend bekannt! ?? Was ist mit den eingebauten Funktionsargumenten? Aus welcher Schule kommst du? [Python]
Python-Funktionen
Python-Standardbibliothek: zweite Hälfte (Python-Lernnotiz ⑨)
Python-Standardbibliothek: Erste Hälfte (Python-Lernnotiz ⑧)
Python 3.6 E-Mail-Bibliothek
[Python] Standardeingabe
Python Library Hinweis
# Python-Grundlagen (Funktionen)
[Anfänger] Python-Funktionen
Python Einfach zu bedienende Funktionen
Python-Grundlagen: Funktionen
Kann bei Wettkampfprofis eingesetzt werden! Python-Standardbibliothek
[Redash] Die Standardbibliothek kann nicht in der Python-Funktion verwendet werden