Genera tutte le permutazioni di una lista in Python
-
Usa
itertools.permutations
per generare tutte le permutazioni di una lista in Python - Usa la ricorsione per generare tutte le permutazioni di una lista in Python
Questo tutorial discute i metodi per generare tutte le permutazioni di una lista in Python.
Usa itertools.permutations
per generare tutte le permutazioni di una lista in Python
Python fornisce uno strumento di libreria standard per generare permutazioni: itertools.permutation
. L’esempio seguente mostra come utilizzarlo per generare tutte le permutazioni di una lista.
import itertools
inp_list = [4, 5, 6]
permutations = list(itertools.permutations(inp_list))
print(permutations)
Produzione:
[(4, 5, 6), (4, 6, 5), (5, 4, 6), (5, 6, 4), (6, 4, 5), (6, 5, 4)]
La lunghezza predefinita della permutazione è impostata come la lunghezza dell’lista di input. Tuttavia, possiamo specificare la lunghezza della permutazione nella chiamata alla funzione itertools.permutations
. L’esempio seguente lo illustra.
import itertools
inp_list = [1, 2, 3]
permutations = list(itertools.permutations(inp_list, r=2))
print(permutations)
Produzione:
[(4, 5), (4, 6), (5, 4), (5, 6), (6, 4), (6, 5)]
L’esempio seguente illustra come generare tutte le permutazioni di tutte le lunghezze possibili di un dato lista.
import itertools
inp_list = [1, 2, 3]
permutations = []
for i in range(1, len(inp_list) + 1):
permutations.extend(list(itertools.permutations(inp_list, r=i)))
print(permutations)
Produzione:
[(4,), (5,), (6,), (4, 5), (4, 6), (5, 4), (5, 6), (6, 4), (6, 5), (4, 5, 6), (4, 6, 5), (5, 4, 6), (5, 6, 4), (6, 4, 5), (6, 5, 4)]
Usa la ricorsione per generare tutte le permutazioni di una lista in Python
Possiamo anche usare la ricorsione per generare tutte le permutazioni di una lista in Python. L’esempio seguente lo illustra.
def permutations(start, end=[]):
if len(start) == 0:
print(end)
else:
for i in range(len(start)):
permutations(start[:i] + start[i + 1 :], end + start[i : i + 1])
permutations([4, 5, 6])
Produzione:
[4, 5, 6]
[4, 6, 5]
[5, 4, 6]
[5, 6, 4]
[6, 4, 5]
[6, 5, 4]
Articolo correlato - Python List
- Converti un dizionario in una lista in Python
- Rimuovi i duplicati dall'lista in Python
- Rimuovi tutte le occorrenze di un elemento da una lista in Python
- Ottieni la media di una lista in Python
- Qual è la differenza tra i metodi di elencazione, aggiungere ed estendere
- Come convertire una lista in stringa in Python