Itertools je jedan od najkorisnijih modula koje Python nudi. Njegove funkcije olakšavaju rad s listama i nizovima. Bilo da trebate sve permutacije vrijednosti u nizu, ili želite grupirati znakove iz niza, Itertools može pomoći.

Pisanje koda za takve uobičajene slučajeve može biti zamorno i sklono pogreškama. Stoga su programeri izgradili knjižnice da sve to rade umjesto vas. Ove funkcije možete koristiti uvozom Itertools. U ovom članku ćete naučiti o modulu Itertools u Pythonu i njegovim funkcijama.

Službenik Piton dokumentacija objašnjava da Itertools sadrži kod za izgradnju iteratora. Ovaj modul pruža brze i učinkovite funkcije za rad s listama i nizovima.

Prije korištenja ovog modula, morate ga uvesti koristeći sljedeću sintaksu:

uvoz itertools

U ovom modulu postoje tri različite vrste iteratora.

  1. Beskonačni iteratori
  2. Kombinatorski iteratori
  3. Završni iteratori

Beskonačni iteratori

Beskonačni iteratori mogu beskonačno izvoditi petlju. Ove funkcije se češće izvode pomoću a za petlju. Postoje tri beskonačna iteratora.

instagram viewer

1. brojati (početak, korak)

The računati() funkcija uzima dva parametra: the početak i korak. Petlja počinje od početne vrijednosti i vraća vrijednosti koje se povećavaju po korak, što je zadana vrijednost 1. Razmotrite primjer dat u nastavku: petlja počinje od 2 i svaki put će dodati 2. Petlja se prekida kada vrijednost od i postaje 10.

za i u itertools.count (2,2):
ako je i == 10:
pauza
drugo:
ispis (i, kraj=" ")

Izlaz:

2 4 6 8 

2. ponoviti (broj, timesToRepeat)

The ponoviti() funkcija prihvaća dva parametra. Prva je vrijednost koju funkcija proizvodi više puta. Drugi parametar je broj ponavljanja broja. Ako ne navedete drugi parametar, petlja će se izvoditi beskonačno.

za i u itertools.ponovi (2,5):
ispis (i, kraj=" ")

Izlaz:

2 2 2 2 2 

3. ciklus (ulaz)

The ciklus() funkcija iterira kroz ulaz i ispisuje pojedinačne stavke zadanim redoslijedom. Kada dođe do kraja svog unosa, ciklus počinje iznova.

c = 0
var = "12345"
za i u itertools.cycle (var):
ako je c == 12:
pauza
drugo:
c = c + 1
ispis (i, kraj=" ")

Izlaz:

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

Kombinatorski iteratori

Kombinatorski iteratori pružaju funkcije za izvođenje permutacija, kombinacija i kartezijanskih proizvoda.

1. proizvod (ulaz)

The proizvod() funkcija izračunava kartezijanski proizvod navedenog ulaza. Ima parametar ponavljanja koji izračunava kartezijanski proizvod iteratora sa samim sobom. To je izborni parametar.

niz = [1,2,3]
ispis (popis (itertools.product (niz, repeat=2)))
string = "ABC"
ispis (popis (itertools.product (niz, "XYZ")))

Izlaz:

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

2. permutacije (unos, veličina)

Ova funkcija vraća tuple svih permutacija zadanog iterable. Prihvaća dva parametra: mogućnost ponavljanja i veličinu grupe. Ako veličina grupe nije navedena, formirat će grupe iste duljine kao i sam iterable.

arr = [1,2,3,4]
ispis (list (itertools.permutations (arr, 2)))

Izlaz:

[(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: Python funkcije koje biste trebali znati

3. kombinacije (unos, duljina)

The kombinacije() funkcija pomaže izračunati kombinacije zadanog iteratora. Imajte na umu da ova funkcija održava redoslijed stavki svog unosa. Dok permutacije uključuje vrijednosti koje se razlikuju samo po redoslijedu, kombinacije proizvodi jedinstvene vrijednosti.

arr = [1,2,3,4]
ispis (popis (itertools.combinations (arr, 3)))

Izlaz:

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

Završni iteratori

Završni iteratori proizvode izlaz na temelju uvjeta danih na ulaz. To možete najbolje razumjeti iz nekih primjera funkcija.

1. akumulirati (unos, operator)

The akumulirati() funkcija prihvaća dva argumenta: iterable i operator. On proizvodi izlaz primjenom operatora na kumulativni zbroj i svaki ulazni element redom. Operator je neobavezni argument. Ako ga ne prođete, ova funkcija će izvršiti zbrajanje.

operater uvoza
arr = [1,2,3,4]
ispis (popis (itertools.akumulirati (arr)))
ispis (popis (itertools.akumulirati (arr, operator.sub)))

Izlaz:

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

2. zvjezdana karta (funkcija, ulaz)

The zvjezdana karta() funkcija prihvaća funkciju i popis tuple kao svoje argumente. Izračunava povratne vrijednosti primjenom funkcije na svaki tuple u ulazu. U navedenom primjeru, ova funkcija će izračunati maksimalnu vrijednost svake torke i vratiti je u niz.

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

Izlaz:

[3, 6, 9]

Povezano: Kako stvoriti i koristiti tuple u Pythonu

3. filterfalse (funkcija)

The filterfalse() funkcija vraća vrijednosti koje ne ispunjavaju uvjet u proslijeđenoj funkciji. Dolje navedeni kod uklanja sve neparne vrijednosti.

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

Izlaz:

[2, 4]

Nastavite s Python programiranjem

Sada kada ste naučili o modulu Itertools, vrijeme je da istražite druge Python module. Python ima module i biblioteke za širok skup zadataka. Oni uključuju napredne koncepte kao što su Fourierova transformacija i AI/ML aplikacije.

Neki moduli su kompliciraniji od drugih i trebat će im dulje za učenje. Modul Tkinter omogućuje vam izradu potpunih GUI aplikacija u Pythonu.

Kako napraviti kalkulator u Tkinteru

Poboljšajte svoje vještine Python Tkinter uz ovaj početnički projekt.

Pročitajte dalje

UdioCvrkutE-mail
Povezane teme
  • Programiranje
  • Programiranje
  • Piton
O autoru
Unnati Bamania (Objavljeno 11 članaka)

Unnati je entuzijastičan full stack programer. Voli graditi projekte koristeći različite programske jezike. U slobodno vrijeme voli svirati gitaru i ljubiteljica je kuhanja.

Više od Unnati Bamanije

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!

Kliknite ovdje za pretplatu