Itertools je eden najbolj uporabnih modulov, ki jih ponuja Python. Njegove funkcije omogočajo enostavno delo s seznami in nizi. Ne glede na to, ali potrebujete vse permutacije vrednosti v matriki ali želite združiti znake iz niza, vam lahko pomaga Itertools.
Pisanje kode za takšne pogoste primere je lahko dolgočasno in nagnjeno k napakam. Zato so razvijalci zgradili knjižnice za vse to namesto vas. Te funkcije lahko uporabite z uvozom Itertools. V tem članku boste izvedeli o modulu Itertools v Pythonu in njegovih funkcijah.
Uradnik Python dokumentacija pojasnjuje, da Itertools vsebuje kodo za gradnjo iteratorjev. Ta modul ponuja hitre in učinkovite funkcije za delo s seznami in nizi.
Pred uporabo tega modula ga morate uvoziti z naslednjo sintakso:
uvozi itertools
V tem modulu so prisotne tri različne vrste iteratorjev.
- Neskončni iteratorji
- Kombinatorni iteratorji
- Prekinitveni iteratorji
Neskončni iteratorji
Neskončni iteratorji lahko izvajajo zanko neskončno. Te funkcije se pogosteje izvajajo z uporabo a za zanko. Obstajajo trije neskončni iteratorji.
1. štetje (začetek, korak)
The count() funkcija ima dva parametra: začnite in korak. Zanka se začne od začetne vrednosti in vrne vrednosti, ki se povečujejo za korakom, kar je privzeto na 1. Razmislite o spodnjem primeru: zanka se začne pri 2 in vsakič doda 2. Zanka se prekine, ko je vrednost jaz postane 10.
za i v itertools.count (2,2):
če je i == 10:
zlomiti
drugo:
natisni (i, konec=" ")
Izhod:
2 4 6 8
2. ponovi (število, čas za ponovitev)
The ponovi () funkcija sprejme dva parametra. Prva je vrednost, ki jo funkcija proizvaja večkrat. Drugi parameter je število ponovitev števila. Če ne podate drugega parametra, se bo zanka izvajala neskončno.
za i v itertools.repeat (2,5):
natisni (i, konec=" ")
Izhod:
2 2 2 2 2
3. cikel (vhod)
The cikel() funkcija ponavlja vnos in natisne posamezne elemente v danem vrstnem redu. Ko doseže konec svojega vnosa, cikel se znova zažene od začetka.
c = 0
var = "12345"
za i v itertools.cycle (var):
če je c == 12:
zlomiti
drugo:
c = c + 1
natisni (i, konec=" ")
Izhod:
1 2 3 4 5 1 2 3 4 5 1 2
Kombinatorni iteratorji
Kombinatorni iteratorji zagotavljajo funkcije za izvajanje permutacij, kombinacij in kartezičnih produktov.
1. izdelek (vhod)
The izdelek() funkcija izračuna kartezični produkt podanega vhoda. Ima parameter ponavljanja, ki izračuna kartezinski produkt iteratorja sam s seboj. To je neobvezen parameter.
niz = [1,2,3]
natisni (seznam (itertools.product (matrika, ponovi = 2)))
niz = "ABC"
natisni (seznam (itertools.product (niz, "XYZ")))
Izhod:
Primer 1 [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
Primer 2 [('A', 'X'), ('A', 'Y'), ('A', 'Z'), ('B', 'X'), ('B', 'Y' '), ('B', 'Z'), ('C', 'X'), ('C', 'Y'), ('C', 'Z')]
2. permutacije (vhod, velikost)
Ta funkcija vrne nabor vseh permutacij danega iterable. Sprejema dva parametra: iterable in velikost skupine. Če velikost skupine ni določena, bo tvorila skupine enake dolžine kot iterable sama.
arr = [1,2,3,4]
natisni (seznam (itertools.permutations (arr, 2)))
Izhod:
[(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)]
Povezano: Funkcije Pythona, ki jih morate poznati
3. kombinacije (vhod, dolžina)
The kombinacije () funkcija pomaga izračunati kombinacije danega iteratorja. Upoštevajte, da ta funkcija ohranja vrstni red elementov svojega vnosa. Medtem permutacije vključuje vrednosti, ki se razlikujejo samo po vrstnem redu, kombinacije ustvarja edinstvene vrednosti.
arr = [1,2,3,4]
natisni (seznam (itertools.combinations (arr, 3)))
Izhod:
[(1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)]
Prekinitveni iteratorji
Končni iteratorji proizvajajo izhod na podlagi pogojev, ki so podani vhodu. To lahko najbolje razumete iz nekaterih vzorčnih funkcij.
1. akumulirati (vnos, operater)
The kopičiti () funkcija sprejema dva argumenta: iterable in operator. Proizvaja izhod tako, da uporabi operator za kumulativno vsoto in vsak vhodni element po vrsti. Operater je neobvezen argument. Če ga ne prenesete, bo ta funkcija izvedla seštevanje.
uvozni operater
arr = [1,2,3,4]
natisni (seznam (itertools.accumulate (arr)))
natisni (seznam (itertools.accumulate (arr, operator.sub)))
Izhod:
[1, 3, 6, 10]
[1, -1, -4, -8]
2. zvezdni zemljevid (funkcija, vhod)
The zvezdni zemljevid() funkcija sprejme funkcijo in seznam kortkov kot svoje argumente. Izračuna vrnjene vrednosti tako, da uporabi funkcijo za vsak niz v vhodu. V navedenem primeru bo ta funkcija izračunala največjo vrednost vsakega niza in jo vrnila v matriki.
arr = [(1,2,3), (4,5,6), (7,8,9)]
natisni (seznam (itertools.starmap (max, arr)))
Izhod:
[3, 6, 9]
Povezano: Kako ustvariti in uporabljati torke v Pythonu
3. filterfalse (funkcija)
The filterfalse() funkcija vrne vrednosti, ki ne izpolnjujejo pogoja v posredovani funkciji. Spodnja koda odstrani vse lihe vrednosti.
arr = [1,2,3,4]
natisni (seznam (itertools.filterfalse (lambda x: x % 2 != 0, arr)))
Izhod:
[2, 4]
Nadaljujte s programiranjem Pythona
Zdaj, ko ste izvedeli za modul Itertools, je čas, da raziščete druge module Python. Python ima module in knjižnice za širok nabor nalog. Vključujejo napredne koncepte, kot so Fourierjeva transformacija in aplikacije AI/ML.
Nekateri moduli so bolj zapleteni kot drugi in učenje traja dlje. Modul Tkinter vam omogoča izdelavo polnih aplikacij GUI v Pythonu.
Izboljšajte svoje znanje Python Tkinter s tem začetnim projektom.
Preberite Naprej
- Programiranje
- Programiranje
- Python
Unnati je navdušen razvijalec polnega sklada. Rada gradi projekte z uporabo različnih programskih jezikov. V prostem času rada igra kitaro in je kuharska navdušenka.
Naročite se na naše novice
Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e-knjige in ekskluzivne ponudbe!
Kliknite tukaj, da se naročite