Python - obtenir toutes les combinaisons d'une liste
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?
- Vous êtes à la recherche pour
combinations
?
InformationsquelleAutor Bush | 2013-06-18
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.