Itertools è uno dei moduli più utili forniti da Python. Le sue funzioni rendono un gioco da ragazzi lavorare con elenchi e array. Sia che tu abbia bisogno di tutte le permutazioni dei valori in un array o che tu voglia raggruppare i caratteri da una stringa, Itertools può aiutarti.
Scrivere il codice per questi casi comuni può essere noioso e soggetto a errori. Quindi, gli sviluppatori hanno creato librerie per fare tutto questo per te. Puoi usare queste funzioni importando Itertools. In questo articolo imparerai a conoscere il modulo Itertools in Python e le sue funzioni.
L'ufficiale Pitone la documentazione spiega che Itertools contiene codice per la creazione di iteratori. Questo modulo fornisce funzioni veloci ed efficienti per lavorare con elenchi e array.
Prima di utilizzare questo modulo, è necessario importarlo utilizzando la seguente sintassi:
importare itertools
Ci sono tre diversi tipi di iteratori presenti in questo modulo.
- Iteratori infiniti
- Iteratori combinatori
- Terminare gli iteratori
Iteratori infiniti
Gli iteratori infiniti possono eseguire un ciclo all'infinito. Queste funzioni vengono eseguite più spesso utilizzando a per ciclo. Ci sono tre iteratori infiniti.
1. contare (inizio, passo)
Il contare() la funzione accetta due parametri: il cominciare e il fare un passo. Il ciclo inizia dal valore iniziale e restituisce valori che incrementano passo dopo passo, il valore predefinito è 1. Considera l'esempio riportato di seguito: il ciclo inizia da 2 e aggiungerà 2 ogni volta. Il ciclo si interrompe quando il valore di io diventa 10.
per i in itertools.count (2,2):
se io == 10:
rottura
altro:
print (i, end="")
Produzione:
2 4 6 8
2. ripeti (numero, volte da ripetere)
Il ripetere() la funzione accetta due parametri. Il primo è un valore che la funzione produce ripetutamente. Il secondo parametro è il numero di volte che il numero deve essere ripetuto. Se non specifichi il secondo parametro, il ciclo verrà eseguito all'infinito.
for i in itertools.repeat (2,5):
print (i, end="")
Produzione:
2 2 2 2 2
3. ciclo (ingresso)
Il ciclo() la funzione scorre l'input e stampa i singoli elementi in un determinato ordine. Quando raggiunge la fine del suo input, ciclo ricomincia dall'inizio.
c = 0
variabile = "12345"
for i in itertools.cycle (var):
se c == 12:
rottura
altro:
c = c + 1
print (i, end="")
Produzione:
1 2 3 4 5 1 2 3 4 5 1 2
Iteratori combinatori
Gli iteratori combinatori forniscono funzioni per eseguire permutazioni, combinazioni e prodotti cartesiani.
1. prodotto (ingresso)
Il Prodotto() calcola il prodotto cartesiano dell'input specificato. Ha un parametro di ripetizione che calcola il prodotto cartesiano di un iteratore con se stesso. È un parametro opzionale.
matrice = [1,2,3]
print (list (itertools.product (array, repeat=2)))
stringa = "ABC"
print (elenco (itertools.product (string, "XYZ")))
Produzione:
Esempio 1 [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
Esempio 2 [('A', 'X'), ('A', 'Y'), ('A', 'Z'), ('B', 'X'), ('B', 'Y '), ('B', 'Z'), ('C', 'X'), ('C', 'Y'), ('C', 'Z')]
2. permutazioni (input, dimensione)
Questa funzione restituisce una tupla di tutte le permutazioni del dato iterabile. Accetta due parametri: l'iterabile e la dimensione del gruppo. Se la dimensione del gruppo non è specificata, formerà gruppi della stessa lunghezza dell'iterabile stesso.
arr = [1,2,3,4]
print (elenco (itertools.permutations (arr, 2)))
Produzione:
[(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)]
Imparentato: Funzioni Python che dovresti conoscere
3. combinazioni (ingresso, lunghezza)
Il combinazioni() La funzione aiuta a calcolare le combinazioni dell'iteratore dato. Notare che questa funzione mantiene l'ordine degli elementi del suo input. Mentre permutazioni include valori che differiscono solo per ordine, combinazioni produce valori unici.
arr = [1,2,3,4]
print (elenco (itertools.combinations (arr, 3)))
Produzione:
[(1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)]
Terminare gli iteratori
Gli iteratori di terminazione producono output in base alle condizioni date all'input. Puoi capirlo meglio da alcune funzioni di esempio.
1. accumulare (input, operatore)
Il accumulare() La funzione accetta due argomenti: l'iterabile e un operatore. Produce output applicando l'operatore a un totale cumulativo e a ciascun elemento di input a turno. L'operatore è un argomento facoltativo. Se non lo passi, questa funzione eseguirà l'addizione.
operatore di importazione
arr = [1,2,3,4]
print (list (itertools.accumulate (arr)))
print (list (itertools.accumulate (arr, operator.sub)))
Produzione:
[1, 3, 6, 10]
[1, -1, -4, -8]
2. mappa stellare (funzione, input)
Il mappa stellare() function accetta una funzione e un elenco di tuple come argomenti. Calcola i valori restituiti applicando la funzione a ciascuna tupla nell'input. Nell'esempio dato, questa funzione calcolerà il valore massimo di ogni tupla e lo restituirà in un array.
arr = [(1,2,3), (4,5,6), (7,8,9)]
print (elenco (itertools.starmap (max, arr)))
Produzione:
[3, 6, 9]
Imparentato: Come creare e utilizzare tuple in Python
3. filterfalse (funzione)
Il filterfalse() la funzione restituisce i valori che non soddisfano la condizione nella funzione passata. Il codice riportato di seguito rimuove tutti i valori dispari.
arr = [1,2,3,4]
print (list (itertools.filterfalse (lambda x: x % 2 != 0, arr)))
Produzione:
[2, 4]
Continua il tuo viaggio nel codice Python
Ora che hai imparato a conoscere il modulo Itertools, è il momento di esplorare altri moduli Python. Python ha moduli e librerie per un'ampia gamma di attività. Includono concetti avanzati come la trasformazione di Fourier e le applicazioni AI/ML.
Alcuni moduli sono più complicati di altri e richiedono più tempo per l'apprendimento. Il modulo Tkinter ti consente di creare applicazioni GUI complete in Python.
Migliora le tue abilità di Python Tkinter con questo progetto per principianti.
Leggi Avanti
- Programmazione
- Programmazione
- Pitone
Unnati è un entusiasta sviluppatore full stack. Ama costruire progetti utilizzando vari linguaggi di programmazione. Nel tempo libero ama suonare la chitarra ed è un'appassionata di cucina.
Iscriviti alla nostra Newsletter
Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!
Clicca qui per iscriverti