Site icon Meccanismo Complesso

Lezioni di Python – 6.8 Il modulo Itertools

Python Lessons - 6.8 The itertools module
Lezioni di Python - 6.8 Il modulo itertools

Il modulo itertools

Il modulo itertools è un modulo presente nella libreria standard di Python che contiene molte funzioni che sono molto utili nella programmazione funzionale, in particolar modo nelle iterazioni.

La funzione count() comincia a contare da un determinato valore.

La funzione cycle() effettua una iterazione infinita su di un oggetto iterable

La funzione repeat() ripete un oggetto, sia infinte volte che per un determinato valore di volte.

Vediamo un esempio

from itertools import count
for i in count(4):
    if i > 10:
        break
    print(i) 

eseguendo

>>>
4
5
6
7
8
9
10

Altre Funzioni

Esistono altre funzioni all’interno del modulo che lavorano in maniera simile a map() e filter().

Vediamo un esempio

from itertools import accumulate, takewhile, chain
lista1 = list(accumulate(range(7)))
print(lista1)
lista2 = list(takewhile(lambda x: x<5, lista1))
print(lista2)
print(list(chain(lista1,lista2))) 

eseguendo

>>>
[0, 1, 3, 6, 10, 15, 21]
[0, 1, 3]
[0, 1, 3, 6, 10, 15, 21, 0, 1, 3]

Funzioni combinatoriali

Esistono funzioni di tipo combinatoriale nel modulo itertools come product() e permutation(). Queste funzioni sono molto utili quando si vogliono ottenere tutte le possibili combinazioni degli elementi.

from itertools import permutations, product
lettere = ("A","B","C")prodotto = list(product(lettere,lettere))
combinazioni = list(permutations(lettere))
print(prodotto)
print(combinazioni) 

eseguendo

>>>
[('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'B'), ('B', 'C'), ('C', 'A'), ('C', 'B'), ('C', 'C')]
[('A', 'B', 'C'), ('A', 'C', 'B'), ('B', 'A', 'C'), ('B', 'C', 'A'), ('C', 'A', 'B'), ('C', 'B', 'A')]

⇐ Vai a Lezione 6.7 – Set

Vai a Lezione 7.1 – Le Classi ⇒

Exit mobile version