Az Itertools a Python által biztosított egyik leghasznosabb modul. Funkciói megkönnyítik a listákkal és tömbökkel való munkát. Akár egy tömbben lévő értékek összes permutációjára van szüksége, akár karakterláncból szeretne karaktereket csoportosítani, az Itertools segíthet.
Az ilyen gyakori esetek kódjának megírása fárasztó és hibára hajlamos lehet. Ezért a fejlesztők könyvtárakat építettek fel, hogy mindezt Ön helyett elvégezzék. Ezeket a funkciókat az Itertools importálásával használhatja. Ebből a cikkből megismerheti a Python Itertools modulját és annak funkcióit.
A hivatalos Piton dokumentáció elmagyarázza, hogy az Itertools kódot tartalmaz az iterátorok felépítéséhez. Ez a modul gyors és hatékony funkciókat biztosít a listákkal és tömbökkel való munkavégzéshez.
A modul használata előtt importálnia kell a következő szintaxissal:
itertoolok importálása
Ebben a modulban három különböző típusú iterátor található.
- Végtelen iterátorok
- Kombinatorikus iterátorok
- Az iterátorok leállítása
Végtelen iterátorok
A végtelen iterátorok korlátlanul futtathatnak egy ciklust. Ezek a funkciók gyakrabban futnak a hurokhoz. Három végtelen iterátor létezik.
1. számolás (kezdet, lépés)
Az számol() függvénynek két paramétere van: a Rajt és a lépés. A ciklus a kezdőértéktől kezdődik, és lépésről lépésre növekvő értékeket ad vissza, ami alapértelmezés szerint 1. Tekintsük az alábbi példát: a ciklus 2-től kezdődik, és minden alkalommal hozzáad 2-t. A hurok megszakad, ha az értéke én 10 lesz.
for i in itertools.count (2,2):
ha i == 10:
szünet
más:
nyomtatás (i, end=" ")
Kimenet:
2 4 6 8
2. ismétlés (szám, ismétlési idő)
Az ismétlés() függvény két paramétert fogad el. Az első egy olyan érték, amelyet a függvény ismételten állít elő. A második paraméter a szám ismétlődéseinek száma. Ha nem adja meg a második paramétert, a ciklus végtelenül fog futni.
for i in itertools.repeat (2,5):
nyomtatás (i, end=" ")
Kimenet:
2 2 2 2 2
3. ciklus (bemenet)
Az ciklus() A függvény végighalad a bemeneten, és adott sorrendben nyomtatja ki az egyes tételeket. Amikor eléri a bemenet végét, ciklus elölről indul újra.
c = 0
var = "12345"
for i in itertools.cycle (var):
ha c == 12:
szünet
más:
c = c + 1
nyomtatás (i, end=" ")
Kimenet:
1 2 3 4 5 1 2 3 4 5 1 2
Kombinatorikus iterátorok
A kombinatorikus iterátorok funkciókat biztosítanak permutációk, kombinációk és derékszögű szorzatok végrehajtásához.
1. termék (input)
Az termék() függvény kiszámítja a megadott bemenet derékszögű szorzatát. Van egy ismétlési paramétere, amely kiszámolja egy iterátor önmagával való derékszögű szorzatát. Ez egy opcionális paraméter.
tömb = [1,2,3]
print (lista (itertools.product (array, repeat=2)))
string = "ABC"
print (lista (itertools.product (string, "XYZ")))
Kimenet:
1. példa [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
2. példa [('A', 'X'), ('A', 'Y'), ('A', 'Z'), ('B', 'X'), ('B', 'Y' '), ('B', 'Z'), ('C', 'X'), ('C', 'Y'), ('C', 'Z')]
2. permutációk (bemenet, méret)
Ez a függvény az adott iteráció összes permutációjának egy sorát adja vissza. Két paramétert fogad el: az iterálhatóságot és a csoportméretet. Ha a csoport mérete nincs megadva, akkor az azonos hosszúságú csoportokat képez, mint maga az iterálható elem.
arr = [1,2,3,4]
print (lista (itertools.permutations (arr, 2)))
Kimenet:
[(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)]
Összefüggő: Python-függvények, amelyeket tudnia kell
3. kombinációk (bevitel, hossz)
Az kombinációk () függvény segít kiszámítani az adott iterátor kombinációit. Vegye figyelembe, hogy ez a funkció fenntartja a bemeneti tételek sorrendjét. Míg permutációk olyan értékeket tartalmaz, amelyek csak sorrendben különböznek, kombinációk egyedi értékeket produkál.
arr = [1,2,3,4]
print (lista (itertools.combinations (arr, 3)))
Kimenet:
[(1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)]
Az iterátorok leállítása
A lezáró iterátorok kimenetet állítanak elő a bemenethez adott feltételek alapján. Néhány példafüggvényből érthető meg a legjobban.
1. felhalmoz (bemenet, operátor)
Az felhalmoz() függvény két argumentumot fogad el: az iterálható és egy operátort. Kimenetet állít elő úgy, hogy az operátort egy kumulatív összegre és minden bemeneti elemre egymás után alkalmazza. Az operátor egy opcionális argumentum. Ha nem adja át, ez a funkció összeadást hajt végre.
import szolgáltató
arr = [1,2,3,4]
print (lista (itertools.accumulate (arr)))
print (lista (itertools.accumulate (arr, operator.sub)))
Kimenet:
[1, 3, 6, 10]
[1, -1, -4, -8]
2. csillagtérkép (függvény, bemenet)
Az csillagtérkép() A függvény függvényt és sorlistát fogad el argumentumaként. A visszatérési értékeket úgy számítja ki, hogy a függvényt a bemenet minden sorára alkalmazza. A megadott példában ez a függvény kiszámítja az egyes sorok maximális értékét, és visszaadja azt egy tömbben.
arr = [(1,2,3), (4,5,6), (7,8,9)]
print (lista (itertools.starmap (max, arr)))
Kimenet:
[3, 6, 9]
Összefüggő: Hogyan hozzunk létre és használjunk tuple-eket a Pythonban
3. filterfalse (függvény)
Az filterfalse() függvény olyan értékeket ad vissza, amelyek nem felelnek meg az átadott függvény feltételének. Az alább megadott kód eltávolítja az összes páratlan értéket.
arr = [1,2,3,4]
print (lista (itertools.filterfalse (lambda x: x % 2 != 0, arr)))
Kimenet:
[2, 4]
Folytassa Python kódolási utazását
Most, hogy megismerte az Itertools modult, ideje felfedezni más Python modulokat. A Python modulokat és könyvtárakat tartalmaz számos feladathoz. Olyan fejlett fogalmakat tartalmaznak, mint a Fourier-transzformáció és az AI/ML alkalmazások.
Egyes modulok bonyolultabbak, mint mások, és hosszabb ideig tart megtanulni. A Tkinter modul lehetővé teszi teljes grafikus felhasználói felület-alkalmazások készítését Pythonban.
Fejlessze Python Tkinter készségeit ezzel a kezdő projekttel.
Olvassa el a következőt
- Programozás
- Programozás
- Piton

Unnati egy lelkes full stack fejlesztő. Szeret projekteket építeni különféle programozási nyelvek használatával. Szabadidejében szeret gitározni, és rajong a főzésért.
Iratkozzon fel hírlevelünkre
Csatlakozzon hírlevelünkhöz műszaki tippekért, ismertetőkért, ingyenes e-könyvekért és exkluzív ajánlatokért!
Kattintson ide az előfizetéshez