Itertools er et af de mest nyttige moduler, som Python tilbyder. Dens funktioner gør det til en leg at arbejde med lister og arrays. Uanset om du har brug for alle permutationer af værdierne i et array, eller du vil gruppere tegn fra en streng, kan Itertools hjælpe.

At skrive koden til sådanne almindelige tilfælde kan være kedeligt og udsat for fejl. Derfor har udviklere bygget biblioteker til at gøre alt dette for dig. Du kan bruge disse funktioner ved at importere Itertools. I denne artikel lærer du om Itertools-modulet i Python og dets funktioner.

Den officielle Python dokumentation forklarer, at Itertools indeholder kode til at bygge iteratorer. Dette modul giver hurtige og effektive funktioner til at arbejde med lister og arrays.

Før du bruger dette modul, skal du importere det ved hjælp af følgende syntaks:

importere itertools

Der er tre forskellige typer iteratorer til stede i dette modul.

  1. Uendelige iteratorer
  2. Kombinatoriske iteratorer
  3. Afsluttende iteratorer

Uendelige iteratorer

instagram viewer

Uendelige iteratorer kan køre en løkke uendeligt. Disse funktioner kører oftere ved hjælp af en for sløjfe. Der er tre uendelige iteratorer.

1. tælle (start, trin)

Det tælle() funktionen tager to parametre: den Start og trin. Sløjfen starter fra startværdien og returnerer værdier, der stiger trinvist, som standard er 1. Overvej eksemplet nedenfor: løkken starter fra 2 og tilføjer 2 hver gang. Sløjfen går i stykker, når værdien af jeg bliver 10.

for i i itertools.count (2,2):
hvis jeg == 10:
pause
andet:
print (i, end=" ")

Produktion:

2 4 6 8 

2. gentag (antal, gangeToRepeat)

Det gentage() funktion accepterer to parametre. Den første er en værdi, som funktionen producerer gentagne gange. Den anden parameter er antallet af gange, tallet skal gentages. Hvis du ikke angiver den anden parameter, vil løkken køre uendeligt.

for i i itertools.repeat (2,5):
print (i, end=" ")

Produktion:

2 2 2 2 2 

3. cyklus (input)

Det cyklus() funktion gentager inputtet og udskriver individuelle elementer i en given rækkefølge. Når det når slutningen af ​​sit input, cyklus genstarter fra begyndelsen.

c = 0
var = "12345"
for i i itertools.cycle (var):
hvis c == 12:
pause
andet:
c = c + 1
print (i, end=" ")

Produktion:

1 2 3 4 5 1 2 3 4 5 1 2

Kombinatoriske iteratorer

De kombinatoriske iteratorer giver funktioner til at udføre permutationer, kombinationer og kartesiske produkter.

1. produkt (input)

Det produkt() funktion beregner det kartesiske produkt af det specificerede input. Den har en gentagelsesparameter, der beregner det kartesiske produkt af en iterator med sig selv. Det er en valgfri parameter.

matrix = [1,2,3]
print (liste (itertools.product (array, repeat=2)))
streng = "ABC"
print (liste (itertools.product (streng, "XYZ")))

Produktion:

Eksempel 1 [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
Eksempel 2 [('A', 'X'), ('A', 'Y'), ('A', 'Z'), ('B', 'X'), ('B', 'Y' '), ('B', 'Z'), ('C', 'X'), ('C', 'Y'), ('C', 'Z')]

2. permutationer (input, størrelse)

Denne funktion returnerer en tuple af alle permutationer af den givne iterable. Den accepterer to parametre: den iterable og gruppestørrelse. Hvis gruppestørrelsen ikke er angivet, vil den danne grupper af samme længde som selve den iterable.

arr = [1,2,3,4]
print (liste (itertools.permutations (arr, 2)))

Produktion:

[(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)]

Relaterede: Python-funktioner, du bør kende

3. kombinationer (input, længde)

Det kombinationer() funktion hjælper med at beregne kombinationerne af den givne iterator. Bemærk, at denne funktion bevarer varerækkefølgen for dens input. Mens permutationer omfatter værdier, der kun afviger efter rækkefølge, kombinationer producerer unikke værdier.

arr = [1,2,3,4]
print (liste (itertools.combinations (arr, 3)))

Produktion:

[(1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)]

Afsluttende iteratorer

Afsluttende iteratorer producerer output baseret på de betingelser, der er givet til input. Du kan bedst forstå det ud fra nogle eksempler på funktioner.

1. akkumulere (input, operator)

Det ophobe() funktion accepterer to argumenter: den iterable og en operator. Den producerer output ved at anvende operatøren på en kumulativ total og hvert inputelement efter tur. Operatøren er et valgfrit argument. Hvis du ikke består det, udfører denne funktion tilføjelse.

importoperatør
arr = [1,2,3,4]
print (liste (itertools.accumulate (arr)))
print (liste (itertools.accumulate (arr, operator.sub)))

Produktion:

[1, 3, 6, 10]
[1, -1, -4, -8]

2. stjernekort (funktion, input)

Det starmap() funktion accepterer en funktion og tupelliste som sine argumenter. Den beregner returværdier ved at anvende funktionen på hver tupel i inputtet. I det givne eksempel vil denne funktion beregne den maksimale værdi for hver tupel og returnere den i en matrix.

arr = [(1,2,3), (4,5,6), (7,8,9)]
print (liste (itertools.starmap (max, arr)))

Produktion:

[3, 6, 9]

Relaterede: Sådan opretter og bruger du Tuples i Python

3. filterfalse (funktion)

Det filterfalse() funktion returnerer værdier, der ikke opfylder betingelsen i den beståede funktion. Koden nedenfor fjerner alle de ulige værdier.

arr = [1,2,3,4]
print (liste (itertools.filterfalse (lambda x: x % 2 != 0, arr)))

Produktion:

[2, 4]

Fortsæt din Python-kodningsrejse

Nu hvor du har lært om Itertools-modulet, er det tid til at udforske andre Python-moduler. Python har moduler og biblioteker til en lang række opgaver. De omfatter avancerede koncepter som Fourier-transformation og AI/ML-applikationer.

Nogle moduler er mere komplicerede end andre og vil tage længere tid at lære. Tkinter-modulet giver dig mulighed for at bygge komplette GUI-applikationer i Python.

Sådan bygger du en lommeregner i Tkinter

Forbedre dine Python Tkinter-færdigheder med dette begynderprojekt.

Læs Næste

DelTweetE-mail
Relaterede emner
  • Programmering
  • Programmering
  • Python
Om forfatteren
Unnati Bamania (11 artikler udgivet)

Unnati er en entusiastisk fuld stack-udvikler. Hun elsker at bygge projekter ved hjælp af forskellige programmeringssprog. I sin fritid elsker hun at spille guitar og er en madlavningsentusiast.

Mere fra Unnati Bamania

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for tekniske tips, anmeldelser, gratis e-bøger og eksklusive tilbud!

Klik her for at abonnere