Python - obtenir toutes les permutations d'une liste sans répétitions
Je sais que je peux utiliser itertools.permutation pour obtenir tous permutation de taille r.
Mais, pour itertools.permutation([1,2,3,4],3)
il sera de retour (1,2,3)
ainsi que (1,3,2)
.
- Je veux filtrer les répétitions (j'.e d'obtenir des combinaisons)
- Est-il un moyen simple d'obtenir toutes les permutations (toutes longueurs)?
- Comment puis-je convertir
itertools.permutation()
suite à une liste régulière?
source d'informationauteur Bush
Vous devez vous connecter pour publier un commentaire.
Utilisation
itertools.combinaisons
et une simple boucle pour obtenir des combinaisons de toutes tailles.combinations
retourne un itérateur de sorte que vous avez à passer àlist()
à voir, c'est le contenu(ou consomment).Il semble que vous sont actuellement à la recherche d'
itertools.les combinaisons()
:Cet exemple montre également comment convertir le résultat de la liste, il suffit de le passer à la fonction intégrée dans
list()
fonction.Pour obtenir les combinaisons pour chaque longueur, vous pouvez simplement utiliser une boucle comme suit:
Ou pour obtenir le résultat sous forme d'une liste imbriquée vous pouvez utiliser une liste de compréhension:
Pour une liste à plat au lieu de imbriquées:
Vous avez besoin
itertools.combinations()
. Et pour obtenir une liste, il suffit d'utiliserlist()
usine de fonction.