Itertools er en av de mest nyttige modulene Python tilbyr. Funksjonene gjør det enkelt å jobbe med lister og matriser. Enten du trenger alle permutasjoner av verdiene i en matrise, eller du vil gruppere tegn fra en streng, kan Itertools hjelpe.

Å skrive koden for slike vanlige saker kan være kjedelig og utsatt for feil. Derfor har utviklere bygget biblioteker for å gjøre alt dette for deg. Du kan bruke disse funksjonene ved å importere Itertools. I denne artikkelen lærer du om Itertools-modulen i Python og dens funksjoner.

Den offisielle Python dokumentasjon forklarer at Itertools inneholder kode for å bygge iteratorer. Denne modulen gir raske og effektive funksjoner for å arbeide med lister og matriser.

Før du bruker denne modulen, må du importere den ved å bruke følgende syntaks:

importer itertools

Det finnes tre forskjellige typer iteratorer i denne modulen.

  1. Uendelige iteratorer
  2. Kombinatoriske iteratorer
  3. Avsluttende iteratorer

Uendelige iteratorer

Uendelige iteratorer kan kjøre en loop i det uendelige. Disse funksjonene kjøres oftere med en

for løkke. Det er tre uendelige iteratorer.

1. telle (start, trinn)

De telle() funksjonen tar to parametere: den start og steg. Sløyfen begynner fra startverdien og returnerer verdier som øker trinnvis, som standard er 1. Tenk på eksemplet nedenfor: løkken starter fra 2 og legger til 2 hver gang. Sløyfen brytes når verdien av Jeg blir 10.

for i i itertools.count (2,2):
hvis jeg == 10:
gå i stykker
ellers:
print (i, end=" ")

Produksjon:

2 4 6 8 

2. gjenta (antall, ganger til å gjenta)

De gjenta() funksjonen aksepterer to parametere. Den første er en verdi som funksjonen produserer gjentatte ganger. Den andre parameteren er antall ganger tallet skal gjentas. Hvis du ikke spesifiserer den andre parameteren, vil loopen kjøre uendelig.

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

Produksjon:

2 2 2 2 2 

3. syklus (inngang)

De syklus() funksjonen itererer gjennom input og skriver ut individuelle elementer i en gitt rekkefølge. Når den når slutten av input, syklus starter på nytt fra begynnelsen.

c = 0
var = "12345"
for i i itertools.cycle (var):
hvis c == 12:
gå i stykker
ellers:
c = c + 1
print (i, end=" ")

Produksjon:

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

Kombinatoriske iteratorer

De kombinatoriske iteratorene gir funksjoner for å utføre permutasjoner, kombinasjoner og kartesiske produkter.

1. produkt (inndata)

De produkt() funksjonen beregner det kartesiske produktet av den spesifiserte inngangen. Den har en gjentakelsesparameter som beregner det kartesiske produktet til en iterator med seg selv. Det er en valgfri parameter.

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

Produksjon:

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. permutasjoner (inndata, størrelse)

Denne funksjonen returnerer en tuppel av alle permutasjonene til den gitte iterable. Den aksepterer to parametere: iterable og gruppestørrelse. Hvis gruppestørrelsen ikke er spesifisert, vil den danne grupper av samme lengde som selve den iterable.

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

Produksjon:

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

I slekt: Python-funksjoner du bør kjenne til

3. kombinasjoner (inndata, lengde)

De kombinasjoner() funksjonen hjelper til med å beregne kombinasjonene av den gitte iteratoren. Merk at denne funksjonen opprettholder varerekkefølgen for inndata. Samtidig som kombinasjonsmuligheter inkluderer verdier som bare varierer etter rekkefølge, kombinasjoner produserer unike verdier.

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

Produksjon:

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

Avsluttende iteratorer

Avsluttende iteratorer produserer utdata basert på betingelsene gitt til input. Du kan forstå det best fra noen eksempelfunksjoner.

1. akkumulere (inngang, operatør)

De akkumulere() funksjonen aksepterer to argumenter: den iterable og en operator. Den produserer utdata ved å bruke operatøren på en kumulativ total og hvert inngangselement etter tur. Operatoren er et valgfritt argument. Hvis du ikke består den, vil denne funksjonen utføre tillegg.

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

Produksjon:

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

2. stjernekart (funksjon, input)

De stjernekart() funksjon aksepterer en funksjon og tuppelliste som sine argumenter. Den beregner returverdier ved å bruke funksjonen på hver tuppel i inngangen. I eksemplet som er gitt, vil denne funksjonen beregne maksimalverdien for hver tuppel og returnere den i en matrise.

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

Produksjon:

[3, 6, 9]

I slekt: Hvordan lage og bruke Tuples i Python

3. filterfalse (funksjon)

De filterfalse() funksjon returnerer verdier som ikke oppfyller betingelsen i den beståtte funksjonen. Koden gitt nedenfor fjerner alle oddeverdier.

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

Produksjon:

[2, 4]

Fortsett Python-kodingsreisen

Nå som du har lært om Itertools-modulen, er det på tide å utforske andre Python-moduler. Python har moduler og biblioteker for et bredt sett med oppgaver. De inkluderer avanserte konsepter som Fourier-transformasjon og AI/ML-applikasjoner.

Noen moduler er mer kompliserte enn andre og vil ta lengre tid å lære. Tkinter-modulen lar deg bygge komplette GUI-applikasjoner i Python.

Hvordan bygge en kalkulator i Tkinter

Forbedre Python Tkinter-ferdighetene dine med dette nybegynnerprosjektet.

Les Neste

DelekvitringE-post
Relaterte temaer
  • Programmering
  • Programmering
  • Python
Om forfatteren
Unnati Bamania (11 artikler publisert)

Unnati er en entusiastisk fullstack-utvikler. Hun elsker å bygge prosjekter med forskjellige programmeringsspråk. På fritiden elsker hun å spille gitar og er en matlagingsentusiast.

Mer fra Unnati Bamania

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis e-bøker og eksklusive tilbud!

Klikk her for å abonnere