Itertools je jedným z najužitočnejších modulov, ktoré Python poskytuje. Vďaka jeho funkciám je práca so zoznamami a poliami hračkou. Či už potrebujete všetky permutácie hodnôt v poli, alebo chcete zoskupiť znaky z reťazca, Itertools vám môže pomôcť.

Písanie kódu pre takéto bežné prípady môže byť únavné a náchylné na chyby. Preto vývojári vytvorili knižnice, ktoré to všetko urobia za vás. Tieto funkcie môžete použiť importovaním Itertools. V tomto článku sa dozviete o module Itertools v Pythone a jeho funkciách.

Oficiálne Python dokumentácia vysvetľuje, že Itertools obsahuje kód na vytváranie iterátorov. Tento modul poskytuje rýchle a efektívne funkcie na prácu so zoznamami a poliami.

Pred použitím tohto modulu ho musíte importovať pomocou nasledujúcej syntaxe:

import itertools

V tomto module sú tri rôzne typy iterátorov.

  1. Nekonečné iterátory
  2. Kombinatorické iterátory
  3. Ukončenie iterátorov

Nekonečné iterátory

Nekonečné iterátory môžu spustiť slučku donekonečna. Tieto funkcie sa častejšie spúšťajú pomocou a pre slučku. Existujú tri nekonečné iterátory.

instagram viewer

1. počítať (štart, krok)

The počítať () funkcia má dva parametre: začať a krok. Cyklus začína od počiatočnej hodnoty a vracia hodnoty, ktoré sa postupne zvyšujú, čo je predvolená hodnota 1. Zvážte príklad uvedený nižšie: slučka začína od 2 a zakaždým pridá 2. Slučka sa preruší, keď je hodnota i stáva sa 10.

for i v itertools.count (2,2):
ak i == 10:
prestávka
inak:
vytlačiť (i, end=" ")

Výkon:

2 4 6 8 

2. opakovať (číslo, počet opakovaní)

The opakovať () funkcia akceptuje dva parametre. Prvým je hodnota, ktorú funkcia vytvára opakovane. Druhým parametrom je počet opakovaní čísla. Ak nešpecifikujete druhý parameter, cyklus bude prebiehať donekonečna.

for i v itertools.repeat (2,5):
vytlačiť (i, end=" ")

Výkon:

2 2 2 2 2 

3. cyklus (vstup)

The cyklus() funkcia iteruje cez vstup a vytlačí jednotlivé položky v danom poradí. Keď dosiahne koniec svojho vstupu, cyklu reštartuje od začiatku.

c = 0
var = "12345"
for i v itertools.cycle (var):
ak c == 12:
prestávka
inak:
c = c + 1
vytlačiť (i, end=" ")

Výkon:

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

Kombinatorické iterátory

Kombinatorické iterátory poskytujú funkcie na vykonávanie permutácií, kombinácií a karteziánskych produktov.

1. produkt (vstup)

The produkt() funkcia vypočíta kartézsky súčin zadaného vstupu. Má parameter opakovania, ktorý počíta kartézsky súčin iterátora so sebou samým. Je to voliteľný parameter.

pole = [1,2,3]
vytlačiť (zoznam (itertools.product (pole, opakovanie=2)))
reťazec = "ABC"
vytlačiť (zoznam (itertools.product (reťazec, "XYZ")))

Výkon:

Príklad 1 [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
Príklad 2 [('A', 'X'), ('A', 'Y'), ('A', 'Z'), ('B', 'X'), ('B', 'Y '), ('B', 'Z'), ('C', 'X'), ('C', 'Y'), ('C', 'Z')]

2. permutácie (vstup, veľkosť)

Táto funkcia vracia n-ticu všetkých permutácií danej iterovateľnosti. Akceptuje dva parametre: iterovateľnosť a veľkosť skupiny. Ak veľkosť skupiny nie je špecifikovaná, vytvorí skupiny rovnakej dĺžky ako iterovateľný samotný.

arr = [1,2,3,4]
vytlačiť (zoznam (itertools.permutations (arr, 2)))

Výkon:

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

Súvisiace: Funkcie Pythonu, ktoré by ste mali vedieť

3. kombinácie (vstup, dĺžka)

The kombinácie() funkcia pomáha vypočítať kombinácie daného iterátora. Všimnite si, že táto funkcia zachováva poradie položiek svojho vstupu. Zatiaľ čo permutácií zahŕňa hodnoty, ktoré sa líšia iba poradím, kombinácie vytvára jedinečné hodnoty.

arr = [1,2,3,4]
vytlačiť (zoznam (itertools.combinations (arr, 3)))

Výkon:

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

Ukončenie iterátorov

Ukončovacie iterátory vytvárajú výstup na základe podmienok daných vstupu. Najlepšie to pochopíte z niektorých príkladov funkcií.

1. akumulovať (vstup, operátor)

The hromadiť () funkcia prijíma dva argumenty: iterovateľný a operátor. Vytvára výstup tým, že operátor aplikuje na kumulatívny súčet a postupne každý vstupný prvok. Operátor je voliteľný argument. Ak ho neminiete, táto funkcia vykoná sčítanie.

dovozného operátora
arr = [1,2,3,4]
vytlačiť (zoznam (itertools.accumulate (arr)))
vytlačiť (zoznam (itertools.accumulate (arr, operator.sub)))

Výkon:

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

2. starmap (funkcia, vstup)

The hviezdna mapa () funkcia akceptuje funkciu a n-ticový zoznam ako svoje argumenty. Vypočíta návratové hodnoty aplikáciou funkcie na každú n-ticu na vstupe. V uvedenom príklade táto funkcia vypočíta maximálnu hodnotu každej n-tice a vráti ju v poli.

arr = [(1,2,3), (4,5,6), (7,8,9)]
vytlačiť (zoznam (itertools.starmap (max, arr)))

Výkon:

[3, 6, 9]

Súvisiace: Ako vytvárať a používať n-tice v Pythone

3. filterfalse (funkcia)

The filterfalse() funkcia vracia hodnoty, ktoré nespĺňajú podmienku v odovzdanej funkcii. Nižšie uvedený kód odstráni všetky nepárne hodnoty.

arr = [1,2,3,4]
vytlačiť (zoznam (itertools.filterfalse (lambda x: x % 2 != 0, arr)))

Výkon:

[2, 4]

Pokračujte v ceste kódovania Pythonu

Teraz, keď ste sa dozvedeli o module Itertools, je čas preskúmať ďalšie moduly Pythonu. Python má moduly a knižnice pre širokú škálu úloh. Zahŕňajú pokročilé koncepty ako Fourierova transformácia a aplikácie AI/ML.

Niektoré moduly sú komplikovanejšie ako iné a ich učenie bude trvať dlhšie. Modul Tkinter vám umožňuje vytvárať úplné GUI aplikácie v Pythone.

Ako zostaviť kalkulačku v Tkinter

Zlepšite svoje zručnosti Python Tkinter s týmto projektom pre začiatočníkov.

Prečítajte si ďalej

zdieľamTweetujteEmail
Súvisiace témy
  • Programovanie
  • Programovanie
  • Python
O autorovi
Unnati Bamania (11 publikovaných článkov)

Unnati je nadšený vývojár plných zásobníkov. Miluje vytváranie projektov pomocou rôznych programovacích jazykov. Vo voľnom čase rada hrá na gitare a je nadšencom varenia.

Viac od Unnati Bamania

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné e-knihy a exkluzívne ponuky!

Kliknutím sem sa prihlásite na odber