Entdecken Sie itertools

WBOY
Freigeben: 2024-09-03 10:40:01
Original
509 Leute haben es durchsucht

Descubriendo itertools

Itertools ist eine der interessantesten Python-Bibliotheken. Es enthält eine Reihe von Funktionen, die von funktionalen Sprachen inspiriert sind und für die Arbeit mit Iteratoren verwendet werden.

In diesem Artikel werde ich einige erwähnen, die mir am meisten aufgefallen sind und die es wert sind, im Hinterkopf behalten zu werden, um nicht jedes Mal das Rad neu zu erfinden.

Zählen

Mehrmals habe ich eine unendliche Zählung implementiert (naja, es endet
explizit irgendwann mit einer Pause) mithilfe einer while-True-Schleife. itertools bietet uns eine bessere Alternative:

    from itertools import count

    for i in count(start=2, step=2):
        if i > 10:
            break
        print(i)

Nach dem Login kopieren
    2
    4
    6
    8
    10
Nach dem Login kopieren
Nach dem Login kopieren

Wie im Beispiel zu sehen ist, würde count ohne die Pause unendlich viele Zahlen zurückgeben. Der obige Code entspricht in etwa:

    i = 2

    while True:
        if i > 10:
            break

        print(i)
        i += 2

Nach dem Login kopieren
    2
    4
    6
    8
    10
Nach dem Login kopieren
Nach dem Login kopieren

gestapelt

Eine Funktion, die etwas sehr Häufiges tut: Daten aus einer Sequenz in Stapeln der Größe n abrufen. Schauen wir uns ein Beispiel an:

from itertools import batched

    sequence = [1, 2, 3, 4, 5, 6, 7]

    for batch in batched(sequence, 2):  # lotes de tamaño 2
        print(batch)
Nach dem Login kopieren
    (1, 2)
    (3, 4)
    (5, 6)
    (7,)
Nach dem Login kopieren

Es ist zu beachten, dass die letzte Charge eine Größe kleiner oder gleich n haben kann, wie in diesem Fall. Ziemlich nützlich, finden Sie nicht?

paarweise

Eine weitere einfache und nützliche Funktion. Bei einer gegebenen Sequenz (eigentlich bei einem gegebenen Iterator) liefert sie uns ihre Elemente paarweise.

Sehen wir es uns anhand eines Beispiels genauer an:

from itertools import pairwise

    sequence = [1, 2, 3, 4, 5, 6, 7]

    for a, b in pairwise(sequence):
        print(a, b)
Nach dem Login kopieren
    1 2
    2 3
    3 4
    4 5
    5 6
    6 7
Nach dem Login kopieren

Die Anzahl der Paare ist um eins kleiner als die Größe der Eingabesequenz.

Produkt

Abschließend möchte ich in diesem kurzen Eintrag über ein Produkt sprechen, ein
Implementierung des kartesischen Produkts.

Nützlich, um ein verschachteltes for zu ersetzen, das zwei Datenströme durchläuft:

from itertools import product

    A = [1, 2, 3]
    B = [5, 6, 7]

    for a, b in product(A, B):
        print(a, b)
Nach dem Login kopieren
   1 5
    1 6
    1 7
    2 5
    2 6
    2 7
    3 5
    3 6
    3 7
Nach dem Login kopieren

Erhält einen Parameter, der es uns ermöglicht, das kartesische Produkt von a zu erstellen
Sequenz mit sich selbst:

   from itertools import product

    A = [1, 2, 3]

    for a1, a2, a3 in product(A, repeat=3):
        print(a1, a2, a3)
Nach dem Login kopieren
    1 1 1
    1 1 2
    1 1 3
    1 2 1
    1 2 2
    1 2 3
    1 3 1
    1 3 2
    1 3 3
    2 1 1
    2 1 2
    2 1 3
    2 2 1
    2 2 2
    2 2 3
    2 3 1
    2 3 2
    2 3 3
    3 1 1
    3 1 2
    3 1 3
    3 2 1
    3 2 2
    3 2 3
    3 3 1
    3 3 2
    3 3 3
Nach dem Login kopieren

In einem zukünftigen Beitrag werde ich weitere Funktionen dieses nützlichen
Moduls erwähnen Python-Standardbibliothek. Ich hoffe, es ist nützlich für Sie.

Das obige ist der detaillierte Inhalt vonEntdecken Sie itertools. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!