Comment générer toutes les permutations d'une liste en Python
-
Utilisez
itertools.permutations
pour générer toutes les permutations d’une liste en Python - Utiliser la récursion pour générer toutes les permutations d’une liste en Python
Ce tutoriel traite des méthodes permettant de générer toutes les permutations d’une liste en Python.
Utilisez itertools.permutations
pour générer toutes les permutations d’une liste en Python
Python fournit un outil de bibliothèque standard pour générer des permutations : itertools.permutation
. L’exemple ci-dessous montre comment utiliser cet outil pour générer toutes les permutations d’une liste.
import itertools
inp_list = [4, 5, 6]
permutations = list(itertools.permutations(inp_list))
print(permutations)
Production:
[(4, 5, 6), (4, 6, 5), (5, 4, 6), (5, 6, 4), (6, 4, 5), (6, 5, 4)]
La longueur par défaut de la permutation est fixée à la longueur de la liste d’entrée. Cependant, nous pouvons spécifier la longueur de la permutation dans l’appel de fonction itertools.permutations
. L’exemple ci-dessous illustre cela.
import itertools
inp_list = [1, 2, 3]
permutations = list(itertools.permutations(inp_list, r=2))
print(permutations)
Production:
[(4, 5), (4, 6), (5, 4), (5, 6), (6, 4), (6, 5)]
L’exemple ci-dessous illustre la façon de générer toutes les permutations de toutes les longueurs possibles d’une liste donnée.
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)
Production:
[(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)]
Utiliser la récursion pour générer toutes les permutations d’une liste en Python
Nous pouvons également utiliser la récursion pour générer toutes les permutations d’une liste en Python. L’exemple ci-dessous illustre cette possibilité.
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])
Production:
[4, 5, 6]
[4, 6, 5]
[5, 4, 6]
[5, 6, 4]
[6, 4, 5]
[6, 5, 4]
Article connexe - Python List
- Convertir un dictionnaire en liste en Python
- Supprimer toutes les occurrences d'un élément d'une liste en Python
- Supprimer les doublons de la liste en Python
- Comment obtenir la moyenne d'une liste en Python
- Quelle est la différence entre les méthodes de liste append et extend
- Comment convertir une liste en chaîne de caractères en Python