Python Itertools

Python Itertools-Funktionen, die Iteratoren für eine effiziente Schleife erstellen.

Foto von Aaron Burden auf Unsplash

Python Itertools:

Dieses Modul standardisiert einen Kernsatz schneller, speichereffizienter Tools, die für sich oder in Kombination nützlich sind. Zusammen bilden “iterator algebra” sie die Möglichkeit, spezielle Tools in reinem Python kurz und effizient zu erstellen.
Das Python itertools-Modul ist in der Python Standard Library verfügbar.

Von diesem Modul bereitgestellte Arten von Iteratoren:

  • Unendliche Iteratoren
  • Iteratoren, die bei kürzester Eingabesequenz enden
  • kombinatorische Iteratoren
  1. mit der Funktion next ()
  2. Verwenden der for-Schleife
  3. Konvertieren in Listenobjekt mit list ()
  1. count ():
    Erstellt einen Iterator, der Werte mit gleichmäßigem Abstand zurückgibt, beginnend mit der im Argument start angegebenen Zahl. Der Standardstart ist 0 und der Schritt ist 1.Schritt kann auch nicht ganzzahlige Werte sein. Diese Funktionen geben einen unendlichen Iterator zurück.
  2. itertools.count(start=0,step=1)
        
           

map()-Python map () -Funktion wird verwendet, um die Funktion auf alle Elemente in der angegebenen iterablen Datei anzuwenden und ein Kartenobjekt zurückzugeben, das ein Iterator ist. Wir können itertools.count () als Argument in der Funktion map () verwenden.

2. cycle ():
Lässt einen Iterator Elemente aus der Iterable zurückgeben und jeweils eine Kopie speichern. Wenn die Iterable erschöpft ist, wird das Element aus der gespeicherten Kopie zurückgegeben. Wiederholt auf unbestimmte Zeit.

itertools.cycle(iterable)
    
      

itertools.repeat(object,times)
    
      

Es wird als Argument in der Funktion zip () verwendet.

Iteratoren, die mit der kürzesten Eingabesequenz enden:

  1. accumulate ():
    Erstellt einen Iterator, der die akkumulierte Summe oder die akkumulierten Ergebnisse anderer Binärfunktionen zurückgibt, die im func-Parameter erwähnt werden.
    Normalerweise stimmt die Anzahl der Elemente in der Ausgabe iterable mit der Anzahl der Elemente in der Eingabe iterable überein. Wenn der Anfangsparameter erwähnt wird, wird er akkumuliert, sodass die Ausgabe iterable ein Element mehr enthält als die Eingabe iterable.
    functools.reduce()Gibt nur den endgültigen akkumulierten Wert für eine ähnliche Funktion zurück.
    Anfangsparameter wird in eingeführtPython version 3.8

2. chain ():
Erstellt einen Iterator, der das Element vom ersten iterierbaren bis zum erschöpften Element zurückgibt und dann zum nächsten iterierbaren Element übergeht. Aufeinanderfolgende Sequenzen werden als einzelne Sequenz behandelt.
itertools.chain(*iterables)

3. chain.from_iterable ():
Diese Funktion verwendet eine iterable als Eingabeargument und gibt eine abgeflachte iterable zurück, die alle Elemente in der iterable Eingabe enthält. Alle Elemente in der iterierbaren Eingabe sollten iterierbar sein, da sonst TypeError ausgelöst wird.

chain.from_iterable(iterable)

4. compress ():
Erstellen Sie einen Iterator, der Elemente aus den Daten filtert und nur diejenigen zurückgibt, die ein entsprechendes Element in Selektoren haben, das als True ausgewertet wird. Stoppt, wenn entweder Daten- oder Selektor-Iterables erschöpft sind.

itertools.compress(data,selectors)

5.dropwhile (): Erstellen
Sie einen Iterator, der Elemente aus der Iteration löscht, solange das Prädikat True ist, und anschließend jedes Element zurückgibt. Der Iterator erzeugt keine Ausgabe, bis das Prädikat zum ersten Mal False wird.

itertools.dropwhile(predicate,iterable)

itertools.takewhile(predicate,iterable)
    
      

itertools.filterfalse(predicate,iterables)
    
      

itertools.zip_longest(*iterables,fillvalue=None)
    
      

itertools.starmap(function,iterable)
    
      

itertools.islice(iterable,stop)
itertools.islice(iterable, start, stop[, step])
    
      

itertools.tee(iterable,n=2)
    
      

itertools.groupby(iterable,key=None)
    
      

  1. product ():
    Kartesisches Produkt von Eingabeiterablen.
    Kartesische Produktdefinition: Das Produkt aus Menge X und Menge Y ist die Menge, die alle geordneten Paare (x, y) enthält, für die x zu X und y zu Y gehört.
    Um das Produkt einer Iterierbarkeit mit sich selbst zu berechnen, geben Sie die Zahl an von Wiederholungen mit dem optionalen Schlüsselwortargument repeat. Zum Beispiel bedeutet Produkt (A, Wiederholung = 4) dasselbe wie Produkt (A, A, A, A).
  2. itertools.product(*iterables,repeat)
        
           

itertools.permutations(iterable,r=None)
    
      

3. Kombinationen ():
Längensubsequenzen rvon Elementen aus der iterierbaren Eingabe zurückgeben.

Die Kombinationstupel werden in lexikografischer Reihenfolge gemäß der Reihenfolge der iterierbaren Eingabe ausgegeben. Wenn die iterierbare Eingabe sortiert ist, werden die Kombinationstupel in sortierter Reihenfolge erstellt.

Lexikografische Reihenfolge bedeutet die Reihenfolge der Wörter in alphabetischer Reihenfolge ihrer einzelnen Buchstaben.

Elemente werden aufgrund ihrer Position und nicht aufgrund ihres Werts als eindeutig behandelt. Wenn die Eingabeelemente eindeutig sind, gibt es in jeder Kombination keine Wiederholungswerte.

itertools.combinations(iterable, r)

itertools.combinations_with_replacement(iterable, r)
    
      
Note: 1. Used as an argument in map() and zip(): count(),repeat() repeat()- supply stream of constant values to map() or zip() function. count()-it will supply different values to map() or zip() function. 2.Difference between cycle() and repeat(): cycle()-iterates over the same object again and again repeat()-returns the same object again and again. 3.Difference between reduce() and itertools.accumulate(): reduce(): * It will return only the final accumulated value. * First argument should be function and second argument should be iterable. accumulate() * It will return the running accumulated value.The elements in the output iterable will be equal to elements in the input iterable,if initial value is not mentioned. * First argument should be iterable and second argument should be function. 4.Difference between filter() and itertools.compress(): * filter()function-filters the given iterable with the help of function that test each element in the iterable is True or not. * compress():filters the given iterable based on the corresponding element in the selector. Iterable containing True /False is given as selector. 5.Difference between filter() and itertools.filterfalse(): *filter():Construct an iterator from the elements of iterable for which function returns True. *filterfalse():Construct an iterator from the elements of iterable for which function returns False. 6.Difference between zip() and itertools.zip_longest(): *zip():Iteration continues until shortest iterable is exhausted. *zip_longest():Iteration continues until longest iterable is exhausted. 7.Difference between list slicing and itertools.islice(): *List slicing creates new list *islice()-Returns an iterator.We can loop through the iterator,in the way we want. 8.Difference between itertools.permutations() and itertools.combinations(): * itertools.permutations():Order of the elements does matters. *itertools.combinations():Order of the elements doesn’t matters. Both combinations and permutations doesn’t repeat values. 9.Difference between itertools.combinations() and itertools.combinations_with_replacement * combinations():Order of element doesn’t matters and doesn’t repeat values. * combinations_with_replacement():Order of element doesn’t matters and it repeats values. 10.Difference between itertools.takewhile() and itertools.dropwhile(): * takewhile():Make an iterator that returns element from the iterable as long as the predicate is True. * dropwhile():Make an iterator that drops element from the iterable as long as the predicate is True afterwards returns every element.

Itertools:https://docs.python.org/3/library/itertools.html

Suggested posts

Erforderliche Fähigkeiten, um 2023 Python-Ingenieur zu werden

Erforderliche Fähigkeiten, um 2023 Python-Ingenieur zu werden

Ein umfassender Leitfaden zum Erlernen der wesentlichen Python-Fähigkeiten für eine erfolgreiche Karriere als Python-Ingenieur im Jahr 2023 Warum auf mich hören? Sie da! Sie fragen sich vielleicht: „Warum sollte ich mir diesen Artikel über das Werden eines Python-Ingenieurs anhören?“ Nun, lassen Sie mich mich vorstellen. Ich bin ein 21-jähriger Python-Ingenieur mit 3 Jahren Erfahrung.

Dispatcher in Python mit Asyncio

Was ist ereignisbasierte Programmierung?

Dispatcher in Python mit Asyncio

Die ereignisbasierte Programmierung ist ein Programmierparadigma, bei dem der Ablauf eines Programms durch Ereignisse bestimmt wird, die auftreten, und nicht durch eine Folge von Anweisungen, die der Reihe nach ausgeführt werden. Bei der ereignisbasierten Programmierung reagiert das Programm auf Ereignisse im System oder in der Umgebung, anstatt einen vorgegebenen Satz von Anweisungen auszuführen.

Related posts

Ist Kunst jemals unpolitisch?

Ist Kunst jemals unpolitisch?

Gestern haben wir die Tür zum diesjährigen Eurovision Song Contest mit einem glitzernden, chaotischen großen Finale geschlossen, bei dem die schwedische Sängerin Loreen die Trophäe mit nach Hause nahm. Sie war damit die erste Frau, die zweimal gewann, und holte die Krone 50 Jahre nach dem Gewinn des Wettbewerbs durch ABBA zurück nach Schweden mit „Waterloo“. Sie entwickelten sich zu einem der größten Acts im Kanon der Popmusik.

Verfolgen Sie jeden mit nur einer Telefonnummer | OSINT-Untersuchung

Verfolgen Sie jeden mit nur einer Telefonnummer | OSINT-Untersuchung

Sie können ein OSINT-Ermittler, ein CTF-Spieler oder einfach jemand sein, der Spam-Anrufe erhält. Jemand, der versucht, die Nummer zu bestätigen, die Sie in einer Anzeige gesehen haben.

Die Verfolgung von Christen: Das Hassverbrechen, über das wir nicht sprechen

Vergessen Sie Islamophobie: Christen (und Juden) sind die Hauptopfer religiöser Hassverbrechen.

Die Verfolgung von Christen: Das Hassverbrechen, über das wir nicht sprechen

Jeder rational denkende Mensch weiß, dass die politischen und medialen Kreise von der Linken dominiert werden, sogar von der extremen Linken, ein Zustand, der zu einem Ungleichgewicht im politischen Diskurs führt. Im Bereich der Religion ist dieses Ungleichgewicht deutlich sichtbar: Linke Zeitungen und Netzwerke beeilen sich nicht, den christlichen Glauben zu verteidigen.

Gefährliche Gespräche

Gefährliche Gespräche

Wenn wir auf diesem Planeten weiterhin erfolgreich sein wollen, müssen wir gefährliche Gespräche führen. Diejenigen, die das in Frage stellen, was wir getan haben, was wir tun und was wir derzeit weiterhin tun werden (oder planen).