Itertools je jedním z nejužitečnějších modulů, které Python poskytuje. Díky jeho funkcím je práce se seznamy a poli hračkou. Ať už potřebujete všechny permutace hodnot v poli, nebo chcete seskupit znaky z řetězce, Itertools vám může pomoci.
Psaní kódu pro takové běžné případy může být zdlouhavé a náchylné k chybám. Vývojáři proto vytvořili knihovny, které to vše dělají za vás. Tyto funkce můžete použít importem Itertools. V tomto článku se dozvíte o modulu Itertools v Pythonu a jeho funkcích.
Oficiální Krajta dokumentace vysvětluje, že Itertools obsahuje kód pro vytváření iterátorů. Tento modul poskytuje rychlé a efektivní funkce pro práci se seznamy a poli.
Před použitím tohoto modulu jej musíte importovat pomocí následující syntaxe:
import itertools
V tomto modulu jsou tři různé typy iterátorů.
- Nekonečné iterátory
- Kombinatorické iterátory
- Ukončení iterátorů
Nekonečné iterátory
Nekonečné iterátory mohou spouštět smyčku nekonečně. Tyto funkce se častěji spouštějí pomocí a pro smyčku. Existují tři nekonečné iterátory.
1. počítat (start, krok)
The počet() funkce má dva parametry: Start a krok. Smyčka začíná od počáteční hodnoty a vrací hodnoty, které se postupně zvyšují, což je výchozí hodnota 1. Zvažte příklad uvedený níže: smyčka začíná od 2 a pokaždé přidá 2. Smyčka se přeruší, když je hodnota i se stává 10.
for i v itertools.count (2,2):
pokud i == 10:
přestávka
jiný:
tisknout (i, end="")
Výstup:
2 4 6 8
2. opakovat (číslo, časy opakování)
The opakovat() funkce přijímá dva parametry. První je hodnota, kterou funkce vytváří opakovaně. Druhý parametr je, kolikrát se má číslo opakovat. Pokud nezadáte druhý parametr, smyčka poběží donekonečna.
for i v itertools.repeat (2,5):
tisknout (i, end="")
Výstup:
2 2 2 2 2
3. cyklus (vstup)
The cyklus() funkce iteruje vstup a tiskne jednotlivé položky v daném pořadí. Když dosáhne konce svého vstupu, cyklus restartuje od začátku.
c = 0
var = "12345"
for i v itertools.cycle (var):
pokud c == 12:
přestávka
jiný:
c = c + 1
tisknout (i, end="")
Výstup:
1 2 3 4 5 1 2 3 4 5 1 2
Kombinatorické iterátory
Kombinatorické iterátory poskytují funkce pro provádění permutací, kombinací a kartézských součinů.
1. produkt (vstup)
The produkt() funkce vypočítá kartézský součin zadaného vstupu. Má parametr opakování, který počítá kartézský součin iterátoru sám se sebou. Je to volitelný parametr.
pole = [1,2,3]
tisknout (seznam (itertools.product (pole, opakování=2)))
řetězec = "ABC"
tisknout (seznam (itertools.product (řetězec, "XYZ")))
Výstup:
Příklad 1 [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
Příklad 2 [('A', 'X'), ('A', 'Y'), ('A', 'Z'), ('B', 'X'), ('B', 'Y '), ('B', 'Z'), ('C', 'X'), ('C', 'Y'), ('C', 'Z')]
2. permutace (vstup, velikost)
Tato funkce vrací n-tici všech permutací dané iterovatelnosti. Přijímá dva parametry: iterovatelnost a velikost skupiny. Pokud velikost skupiny není specifikována, vytvoří skupiny stejné délky jako iterovatelný samotný.
arr = [1,2,3,4]
tisknout (seznam (itertools.permutations (arr, 2)))
Výstup:
[(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)]
Příbuzný: Funkce Pythonu, které byste měli znát
3. kombinace (vstup, délka)
The kombinace() Funkce pomáhá vypočítat kombinace daného iterátoru. Všimněte si, že tato funkce zachovává pořadí položek svého vstupu. Zatímco permutace zahrnuje hodnoty, které se liší pouze pořadím, kombinace vytváří jedinečné hodnoty.
arr = [1,2,3,4]
tisknout (seznam (itertools.combinations (arr, 3)))
Výstup:
[(1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)]
Ukončení iterátorů
Ukončovací iterátory vytvářejí výstup na základě podmínek daných vstupu. Nejlépe to pochopíte z některých příkladů funkcí.
1. akumulovat (vstup, operátor)
The akumulovat() funkce přijímá dva argumenty: iterovatelný a operátor. Vytváří výstup aplikací operátora na kumulativní součet a postupně každý vstupní prvek. Operátor je volitelný argument. Pokud ji neprojdete, tato funkce provede sčítání.
dovozní operátor
arr = [1,2,3,4]
tisknout (seznam (itertools.accumulate (arr)))
tisknout (seznam (itertools.accumulate (arr, operator.sub)))
Výstup:
[1, 3, 6, 10]
[1, -1, -4, -8]
2. starmap (funkce, vstup)
The hvězdná mapa() funkce přijímá funkci a n-ticový seznam jako své argumenty. Vypočítá návratové hodnoty aplikací funkce na každou n-tici na vstupu. V uvedeném příkladu tato funkce vypočítá maximální hodnotu každé n-tice a vrátí ji v poli.
arr = [(1,2,3), (4,5,6), (7,8,9)]
tisknout (seznam (itertools.starmap (max, arr)))
Výstup:
[3, 6, 9]
Příbuzný: Jak vytvářet a používat n-tice v Pythonu
3. filterfalse (funkce)
The filterfalse() funkce vrací hodnoty, které nesplňují podmínku v předané funkci. Níže uvedený kód odstraní všechny liché hodnoty.
arr = [1,2,3,4]
tisknout (seznam (itertools.filterfalse (lambda x: x % 2 != 0, arr)))
Výstup:
[2, 4]
Pokračujte v Python Coding Journey
Nyní, když jste se dozvěděli o modulu Itertools, je čas prozkoumat další moduly Pythonu. Python má moduly a knihovny pro širokou škálu úloh. Zahrnují pokročilé koncepty, jako je Fourierova transformace a aplikace AI/ML.
Některé moduly jsou složitější než jiné a jejich naučení bude trvat déle. Modul Tkinter vám umožňuje vytvářet plné GUI aplikace v Pythonu.
Zlepšete své dovednosti Python Tkinter s tímto projektem pro začátečníky.
Přečtěte si další
- Programování
- Programování
- Krajta
Unnati je nadšený vývojář plného balíčku. Ráda vytváří projekty pomocí různých programovacích jazyků. Ve volném čase ráda hraje na kytaru a je nadšená do vaření.
Přihlaste se k odběru našeho newsletteru
Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné e-knihy a exkluzivní nabídky!
Chcete-li se přihlásit k odběru, klikněte sem