Itertools on yksi hyödyllisimmistä Pythonin tarjoamista moduuleista. Sen toimintojen ansiosta on helppoa työskennellä luetteloiden ja taulukoiden kanssa. Tarvitsetpa sitten kaikkia taulukon arvojen permutaatioita tai haluat ryhmitellä merkkijonon merkkejä, Itertools voi auttaa.

Tällaisten yleisten tapausten koodin kirjoittaminen voi olla työlästä ja virhealtista. Siksi kehittäjät ovat rakentaneet kirjastoja tehdäkseen kaiken tämän puolestasi. Voit käyttää näitä toimintoja tuomalla Itertools. Tässä artikkelissa opit Pythonin Itertools-moduulista ja sen toiminnoista.

Virallinen Python dokumentaatio selittää, että Itertools sisältää koodin iteraattorien rakentamiseen. Tämä moduuli tarjoaa nopeita ja tehokkaita toimintoja työskennelläksesi luetteloiden ja taulukoiden kanssa.

Ennen kuin käytät tätä moduulia, sinun on tuotava se käyttämällä seuraavaa syntaksia:

tuoda itertotyökalut

Tässä moduulissa on kolme erityyppistä iteraattoria.

  1. Infinite iterators
  2. Kombinatoriset iteraattorit
  3. Iteraattorien lopettaminen
instagram viewer

Infinite Iterators

Äärettömät iteraattorit voivat suorittaa silmukan äärettömästi. Nämä toiminnot suoritetaan useammin käyttämällä a silmukalle. On kolme ääretöntä iteraattoria.

1. laskea (aloitus, askel)

The Kreivi() funktio ottaa kaksi parametria: alkaa ja askel. Silmukka alkaa aloitusarvosta ja palauttaa arvot, jotka kasvavat askeleelta, oletuksena 1. Harkitse alla olevaa esimerkkiä: silmukka alkaa 2:sta ja lisää 2:n joka kerta. Silmukka katkeaa, kun arvo i tulee 10.

for i in itertools.count (2,2):
jos i == 10:
tauko
muu:
tulosta (i, end=" ")

Lähtö:

2 4 6 8 

2. toista (numero, kertaa toistoon)

The toistaa() toiminto hyväksyy kaksi parametria. Ensimmäinen on arvo, jonka funktio tuottaa toistuvasti. Toinen parametri on kuinka monta kertaa numeron tulee toistua. Jos et määritä toista parametria, silmukka jatkuu loputtomasti.

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

Lähtö:

2 2 2 2 2 

3. sykli (syöttö)

The sykli() toiminto toistuu syötteen läpi ja tulostaa yksittäiset kohteet tietyssä järjestyksessä. Kun se saavuttaa syöttönsä lopun, sykli käynnistyy uudelleen alusta.

c = 0
var = "12345"
i in itertools.cycle (var):
jos c == 12:
tauko
muu:
c = c + 1
tulosta (i, end=" ")

Lähtö:

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

Kombinatoriset iteraattorit

Kombinatoriset iteraattorit tarjoavat toimintoja permutaatioiden, yhdistelmien ja karteesisten tulojen suorittamiseen.

1. tuote (syöttö)

The tuote() funktio laskee määritellyn syötteen suorakulmaisen tulon. Siinä on toistoparametri, joka laskee iteraattorin karteesisen tulon itsensä kanssa. Se on valinnainen parametri.

matriisi = [1,2,3]
tulosta (lista (itertools.product (array, repeat=2)))
merkkijono = "ABC"
tulosta (lista (itertools.product (string, "XYZ")))

Lähtö:

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

2. permutaatiot (syöttö, koko)

Tämä funktio palauttaa joukon kaikista tietyn iterablen permutaatioista. Se hyväksyy kaksi parametria: iteroitavan ja ryhmän koon. Jos ryhmän kokoa ei ole määritetty, se muodostaa samanpituisia ryhmiä kuin iteroitava itse.

arr = [1,2,3,4]
tulosta (lista (itertools.permutations (arr, 2)))

Lähtö:

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

Aiheeseen liittyvä: Python-funktiot, jotka sinun pitäisi tietää

3. yhdistelmät (syöttö, pituus)

The yhdistelmät () funktio auttaa laskemaan annetun iteraattorin yhdistelmät. Huomaa, että tämä toiminto säilyttää syötteensä nimikejärjestyksen. Sillä aikaa permutaatioita sisältää arvot, jotka eroavat vain järjestyksen mukaan, yhdistelmiä tuottaa ainutlaatuisia arvoja.

arr = [1,2,3,4]
tulosta (lista (itertools.combinations (arr, 3)))

Lähtö:

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

Iteraattorien lopettaminen

Päättävät iteraattorit tuottavat tulosteen tulolle annettujen ehtojen perusteella. Voit ymmärtää sen parhaiten muutamista esimerkkifunktioista.

1. kerääntyä (syöttö, operaattori)

The kerääntyä () funktio hyväksyy kaksi argumenttia: iterable ja operaattori. Se tuottaa tulosteen soveltamalla operaattoria kumulatiiviseen summaan ja jokaiseen tuloelementtiin vuorotellen. Operaattori on valinnainen argumentti. Jos et läpäise sitä, tämä toiminto suorittaa lisäyksen.

tuontitoimija
arr = [1,2,3,4]
tulosta (lista (itertools.accumulate (arr)))
print (list (itertools.accumulate (arr, operator.sub)))

Lähtö:

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

2. tähtikartta (toiminto, syöttö)

The tähtikartta () funktio hyväksyy funktion ja tuple listin argumentteinaan. Se laskee palautusarvot soveltamalla funktiota jokaiseen syötteen monikkoon. Annetussa esimerkissä tämä funktio laskee kunkin monikon maksimiarvon ja palauttaa sen taulukossa.

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

Lähtö:

[3, 6, 9]

Aiheeseen liittyvä: Kuinka luoda ja käyttää tupleja Pythonissa

3. filterfalse (funktio)

The filterfalse() funktio palauttaa arvot, jotka eivät täytä hyväksytyn funktion ehtoa. Alla oleva koodi poistaa kaikki parittomat arvot.

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

Lähtö:

[2, 4]

Jatka Python-koodausmatkaasi

Nyt kun olet oppinut Itertools-moduulista, on aika tutkia muita Python-moduuleja. Pythonissa on moduuleja ja kirjastoja monenlaisia ​​tehtäviä varten. Ne sisältävät edistyneitä konsepteja, kuten Fourier-muunnoksen ja AI/ML-sovellukset.

Jotkut moduulit ovat monimutkaisempia kuin toiset, ja niiden oppiminen kestää kauemmin. Tkinter-moduulin avulla voit rakentaa täydellisiä GUI-sovelluksia Pythonissa.

Kuinka rakentaa laskin Tkinterissä

Paranna Python Tkinter -taitojasi tällä aloittelijaprojektilla.

Lue Seuraava

JaaTweetSähköposti
Liittyvät aiheet
  • Ohjelmointi
  • Ohjelmointi
  • Python
Kirjailijasta
Unnati Bamania (11 artikkelia julkaistu)

Unnati on innostunut full stack -kehittäjä. Hän rakastaa rakentaa projekteja eri ohjelmointikielillä. Vapaa-ajallaan hän rakastaa kitaran soittoa ja on ruoanlaitto-ihminen.

Lisää Unnati Bamaniasta

tilaa uutiskirjeemme

Liity uutiskirjeemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia ​​e-kirjoja ja eksklusiivisia tarjouksia!

Klikkaa tästä tilataksesi