Itertools on üks kasulikumaid mooduleid, mida Python pakub. Selle funktsioonid muudavad loendite ja massiividega töötamise imelihtsaks. Olenemata sellest, kas vajate kõiki massiivi väärtuste permutatsioone või soovite rühmitada tähemärke stringist, võib Itertools aidata.

Selliste tavaliste juhtumite jaoks koodi kirjutamine võib olla tüütu ja veaohtlik. Seetõttu on arendajad loonud raamatukogud, et seda kõike teie eest teha. Saate neid funktsioone kasutada, importides Itertoolsi. Sellest artiklist saate teada Pythoni mooduli Itertools ja selle funktsioonide kohta.

Ametlik Python dokumentatsioon selgitab, et Itertools sisaldab koodi iteraatorite ehitamiseks. See moodul pakub kiireid ja tõhusaid funktsioone loendite ja massiividega töötamiseks.

Enne selle mooduli kasutamist peate selle importima, kasutades järgmist süntaksit:

importida itertotööriistu

Selles moodulis on kolme erinevat tüüpi iteraatorit.

  1. Lõpmatud iteraatorid
  2. Kombinatoorsed iteraatorid
  3. Iteraatorite lõpetamine

Lõpmatud iteraatorid

Lõpmatud iteraatorid võivad tsüklit lõputult käivitada. Neid funktsioone käitatakse sagedamini kasutades a silmuse jaoks. Seal on kolm lõputut iteraatorit.

1. loendama (start, samm)

The count () funktsioon võtab kaks parameetrit: alustada ja samm. Tsükkel algab algusväärtusest ja tagastab väärtused, mis kasvavad astmeliselt, mis vaikimisi on 1. Mõelge allpool toodud näitele: tsükkel algab 2-st ja lisab iga kord 2. Silmus katkeb, kui väärtus i saab 10.

i jaoks in itertools.count (2,2):
kui i == 10:
murda
muu:
print (i, end=" ")

Väljund:

2 4 6 8 

2. kordamine (arv, kordamise korda)

The kordama () funktsioon aktsepteerib kahte parameetrit. Esimene on väärtus, mille funktsioon tekitab korduvalt. Teine parameeter on arvu korduste arv. Kui te teist parameetrit ei määra, töötab tsükkel lõputult.

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

Väljund:

2 2 2 2 2 

3. tsükkel (sisend)

The tsükkel() funktsioon kordab sisendit ja prindib üksikud üksused etteantud järjekorras. Kui see jõuab oma sisendi lõppu, tsükkel alustab uuesti algusest.

c = 0
var = "12345"
i jaoks in itertools.cycle (var):
kui c == 12:
murda
muu:
c = c + 1
print (i, end=" ")

Väljund:

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

Kombinatoorsed iteraatorid

Kombinatoorsed iteraatorid pakuvad funktsioone permutatsioonide, kombinatsioonide ja ristkoormuste teostamiseks.

1. toode (sisend)

The toode () funktsioon arvutab määratud sisendi ristkorrutise. Sellel on kordusparameeter, mis arvutab iteraatori ristkorrutise iseendaga. See on valikuline parameeter.

massiiv = [1,2,3]
print (loend (itertools.product (massiiv, kordus=2)))
string = "ABC"
print (loend (itertools.product (string, "XYZ")))

Väljund:

Näide 1 [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
Näide 2 [('A', 'X'), ('A', 'Y'), ('A', 'Z'), ('B', 'X'), ('B', 'Y' '), ('B', 'Z'), ('C', 'X'), ('C', 'Y'), ('C', 'Z')]

2. permutatsioonid (sisend, suurus)

See funktsioon tagastab antud iteratsiooni kõigi permutatsioonide arvu. See aktsepteerib kahte parameetrit: itereeritav ja rühma suurus. Kui rühma suurust pole määratud, moodustab see itereeritavaga sama pikkusega rühmi.

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

Väljund:

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

Seotud: Pythoni funktsioonid, mida peaksite teadma

3. kombinatsioonid (sisend, pikkus)

The kombinatsioonid () funktsioon aitab arvutada antud iteraatori kombinatsioone. Pange tähele, et see funktsioon säilitab oma sisendi üksuste järjestuse. Kuigi permutatsioonid sisaldab väärtusi, mis erinevad ainult järjekorras, kombinatsioonid toodab ainulaadseid väärtusi.

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

Väljund:

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

Iteraatorite lõpetamine

Lõpetavad iteraatorid toodavad väljundit sisendile antud tingimustel. Saate sellest kõige paremini aru mõne näidisfunktsiooni põhjal.

1. koguma (sisend, operaator)

The koguma () funktsioon aktsepteerib kahte argumenti: itereeritav ja operaator. See loob väljundi, rakendades operaatori kumulatiivsele summale ja igale sisendelemendile kordamööda. Operaator on valikuline argument. Kui te seda ei soorita, teostab see funktsioon lisamise.

impordi ettevõtja
arr = [1,2,3,4]
print (loend (itertools.accumulate (arr)))
print (loend (itertools.accumulate (arr, operator.sub)))

Väljund:

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

2. tähekaart (funktsioon, sisend)

The tähekaart () funktsioon aktsepteerib oma argumentidena funktsiooni ja kordusloendit. See arvutab tagastusväärtused, rakendades funktsiooni igale sisendi korteile. Antud näites arvutab see funktsioon iga korteeži maksimaalse väärtuse ja tagastab selle massiivina.

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

Väljund:

[3, 6, 9]

Seotud: Kuidas Pythonis kortereid luua ja kasutada

3. filterfalse (funktsioon)

The filterfalse() funktsioon tagastab väärtused, mis ei vasta läbitud funktsiooni tingimusele. Allpool antud kood eemaldab kõik paaritu väärtused.

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

Väljund:

[2, 4]

Jätkake oma Pythoni kodeerimisreisi

Nüüd, kui olete õppinud tundma moodulit Itertools, on aeg uurida teisi Pythoni mooduleid. Pythonil on moodulid ja teegid paljude ülesannete jaoks. Need hõlmavad täiustatud kontseptsioone, nagu Fourier' teisendus ja AI/ML-rakendused.

Mõned moodulid on keerulisemad kui teised ja nende õppimine võtab kauem aega. Tkinteri moodul võimaldab teil Pythonis luua täielikke GUI-rakendusi.

Kuidas Tkinteris kalkulaatorit koostada

Täiustage oma Python Tkinteri oskusi selle algaja projektiga.

Loe edasi

JagaSäutsMeil
Seotud teemad
  • Programmeerimine
  • Programmeerimine
  • Python
Autori kohta
Unnati Bamania (11 artiklit avaldatud)

Unnati on entusiastlik täispinu arendaja. Talle meeldib ehitada projekte, kasutades erinevaid programmeerimiskeeli. Vabal ajal armastab ta kitarri mängida ja on kokandushuviline.

Veel Unnati Bamanialt

Liituge meie uudiskirjaga

Liituge meie uudiskirjaga tehniliste näpunäidete, arvustuste, tasuta e-raamatute ja eksklusiivsete pakkumiste saamiseks!

Tellimiseks klõpsake siin