
La funzione itertools.permutations() in Python
La funzione itertools.permutations in Python calcola le permutazioni degli elementi da un oggetto iterabile.
itertools.permutations(iterable, r=None)
La funzione ha due parametri:
- iterable
È l'input di cui vuoi generare le permutazioni. Può essere una lista, una stringa, un insieme o qualsiasi altro iterabile. - r (opzionale)
È un parametro opzionale che determina la lunghezza delle permutazioni. Se fornisci un valore intero per r, la funzione produce permutazioni a gruppi di r elementi. Se ometti questo parametro o passiNone
, invece, la funzione assume come default la lunghezza totale dell'iterabile, generando tutte le possibili permutazioni complete degli elementi dell'iterabile.
La funzione restituisce un oggetto iteratore con le permutazioni dell'oggetto rappresentate come tuple di lunghezza r.
Cosa sono le permutazioni? Le permutazioni in statistica e in combinatoria sono le diverse sequenze possibili di un insieme di oggetti, dove l'ordine degli oggetti è importante. Si calcolano per determinare il numero totale di modi unici in cui un insieme di elementi può essere ordinato. Ad esempio, se hai tre libri A, B e C, le permutazioni possibili su uno scaffale sono sei: ABC, ACB, BAC, BCA, CAB, e CBA.
Ricorda che la funzione appartiene al modulo itertools.
Quindi, per utilizzare la funzione permutations, devi prima importarla all'inizio della sessione o del tuo script python.
import itertools
Ecco un esempio pratico.
Definisci una lista con tre elementi.
A = [1, 2, 3]
Poi calcola le permutazioni dell'oggetto usando la funzione permutations()
B = itertools.permutations(A)
La funzione calcola le permutazioni sull'intera lunghezza dell'iterabile in ingresso, ossia a gruppi di 3, restituisce un iteratore di tuple e lo salva nella variabile B.
A questo punto, leggi il contenuto di B con un ciclo for e stampa il risultato.
- for p in B:
- print(p)
Il contenuto sono tutte le possibili permutazioni degli elementi della lista A.
(1, 2, 3)
(1, 3, 2)
(2, 1, 3)
(2, 3, 1)
(3, 1, 2)
(3, 2, 1)
Se vuoi puoi limitare la lunghezza delle permutazioni a gruppi di r elementi, specificando il numero degli elementi nel secondo parametro della funzione.
Ad esempio, crea ed esegui questo script
- import itertools
- A = [1, 2, 3]
- B = itertools.permutations(A, 2)
- for p in B:
- print(p)
In questo caso la funzione genera le permutazioni degli elementi della lista A presi a gruppi di 2.
Ogni tupla restituita è una possibile permutazione di lunghezza r=2 degli elementi di A.
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
In questo modo puoi calcolare le permutazioni di qualsiasi oggetto iterabile in Python.