Itertools este unul dintre cele mai utile module oferite de Python. Funcțiile sale fac să lucrezi ușor cu liste și matrice. Indiferent dacă aveți nevoie de toate permutările valorilor dintr-o matrice sau dacă doriți să grupați caractere dintr-un șir, Itertools vă poate ajuta.
Scrierea codului pentru astfel de cazuri obișnuite poate fi plictisitoare și predispusă la erori. Prin urmare, dezvoltatorii au construit biblioteci pentru a face toate acestea pentru tine. Puteți utiliza aceste funcții importând Itertools. În acest articol, veți afla despre modulul Itertools din Python și despre funcțiile acestuia.
Oficialul Piton documentația explică că Itertools conține cod pentru construirea iteratoarelor. Acest modul oferă funcții rapide și eficiente pentru a lucra cu liste și matrice.
Înainte de a utiliza acest modul, trebuie să-l importați folosind următoarea sintaxă:
import iertools
Există trei tipuri diferite de iteratoare prezente în acest modul.
- Iteratoare infinite
- Iteratoare combinatorice
- Terminarea iteratorilor
Iteratori infiniti
Iteratorii infiniti pot rula o buclă la infinit. Aceste funcții rulează mai des folosind a pentru buclă. Există trei iteratoare infinite.
1. numără (început, pas)
The numara() funcția ia doi parametri: the start si Etapa. Bucla începe de la valoarea de pornire și returnează valori care cresc cu pas, care este implicit 1. Luați în considerare exemplul de mai jos: bucla începe de la 2 și va adăuga 2 de fiecare dată. Bucla se întrerupe când valoarea lui i devine 10.
pentru i în itertools.count (2,2):
dacă i == 10:
pauză
altceva:
imprimare (i, sfârșit=" ")
Ieșire:
2 4 6 8
2. repetare (număr, oriToRepeat)
The repeta() funcția acceptă doi parametri. Prima este o valoare pe care funcția o produce în mod repetat. Al doilea parametru este de câte ori trebuie să se repete numărul. Dacă nu specificați al doilea parametru, bucla va rula la infinit.
pentru i în itertools.repetă (2,5):
imprimare (i, sfârșit=" ")
Ieșire:
2 2 2 2 2
3. ciclu (intrare)
The ciclu() funcția iterează prin intrare și imprimă articole individuale într-o ordine dată. Când ajunge la sfârșitul intrării sale, ciclu repornește de la început.
c = 0
var = "12345"
pentru i în itertools.cycle (var):
dacă c == 12:
pauză
altceva:
c = c + 1
imprimare (i, sfârșit=" ")
Ieșire:
1 2 3 4 5 1 2 3 4 5 1 2
Iteratoare combinatorice
Iteratoarele combinatorice oferă funcții pentru a efectua permutări, combinații și produse carteziene.
1. produs (intrare)
The produs() funcția calculează produsul cartezian al intrării specificate. Are un parametru de repetare care calculează produsul cartezian al unui iterator cu el însuși. Este un parametru optional.
matrice = [1,2,3]
imprimare (listă (itertools.product (matrice, repetare=2)))
șir = „ABC”
imprimare (listă (itertools.product (șir, „XYZ”))))
Ieșire:
Exemplul 1 [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
Exemplul 2 [('A', 'X'), ('A', 'Y'), ('A', 'Z'), ('B', 'X'), ('B', 'Y' '), ('B', 'Z'), ('C', 'X'), ('C', 'Y'), ('C', 'Z')]
2. permutări (intrare, dimensiune)
Această funcție returnează un tuplu din toate permutările iterabilului dat. Acceptă doi parametri: iterabil și dimensiunea grupului. Dacă dimensiunea grupului nu este specificată, acesta va forma grupuri de aceeași lungime ca iterabilul însuși.
arr = [1,2,3,4]
imprimare (lista (itertools.permutations (arr, 2)))
Ieșire:
[(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)]
Legate de: Funcții Python pe care ar trebui să le cunoașteți
3. combinații (intrare, lungime)
The combinatii() funcția ajută la calcularea combinațiilor iteratorului dat. Rețineți că această funcție menține ordinea articolelor de intrare. In timp ce permutări include valori care diferă numai în funcție de comandă, combinatii produce valori unice.
arr = [1,2,3,4]
imprimare (lista (itertools.combinations (arr, 3)))
Ieșire:
[(1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)]
Terminarea iteratorilor
Iteratoarele care se încheie produc rezultate pe baza condițiilor date intrării. Puteți înțelege cel mai bine din câteva exemple de funcții.
1. acumulare (intrare, operator)
The acumula() funcția acceptă două argumente: iterabilul și un operator. Produce ieșire prin aplicarea operatorului la un total cumulativ și la fiecare element de intrare pe rând. Operatorul este un argument opțional. Dacă nu o treceți, această funcție va efectua adăugare.
operator de import
arr = [1,2,3,4]
imprimare (listă (itertools.accumulate (arr)))
print (lista (itertools.accumulate (arr, operator.sub)))
Ieșire:
[1, 3, 6, 10]
[1, -1, -4, -8]
2. hartă stelară (funcție, intrare)
The harta stelară() funcția acceptă o funcție și o listă de tuplu ca argumente. Acesta calculează valorile returnate prin aplicarea funcției fiecărui tuplu din intrare. În exemplul dat, această funcție va calcula valoarea maximă a fiecărui tuplu și o va returna într-o matrice.
arr = [(1,2,3), (4,5,6), (7,8,9)]
imprimare (lista (itertools.starmap (max, arr)))
Ieșire:
[3, 6, 9]
Legate de: Cum să creați și să utilizați tupluri în Python
3. filterfalse (funcție)
The filterfalse() funcția returnează valori care nu îndeplinesc condiția din funcția transmisă. Codul de mai jos elimină toate valorile impare.
arr = [1,2,3,4]
print (lista (itertools.filterfalse (lambda x: x % 2 != 0, arr)))
Ieșire:
[2, 4]
Continuați-vă călătoria de codare Python
Acum că ați învățat despre modulul Itertools, este timpul să explorați alte module Python. Python are module și biblioteci pentru un set larg de sarcini. Acestea includ concepte avansate precum transformarea Fourier și aplicații AI/ML.
Unele module sunt mai complicate decât altele și vor dura mai mult pentru a învăța. Modulul Tkinter vă permite să construiți aplicații GUI complete în Python.
Îmbunătățiți-vă abilitățile Python Tkinter cu acest proiect pentru începători.
Citiți în continuare
- Programare
- Programare
- Piton

Unnati este un dezvoltator entuziast full stack. Îi place să construiască proiecte folosind diverse limbaje de programare. În timpul liber, îi place să cânte la chitară și este o pasionată de gătit.
Aboneaza-te la newsletter-ul nostru
Alăturați-vă buletinului nostru informativ pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!
Click aici pentru a te abona