Maison >développement back-end >Tutoriel Python >Comment puis-je générer toutes les permutations avec des répétitions à partir d'une liste en Python ?
Obtention de permutations avec des répétitions à partir d'une liste
Lorsque vous essayez de générer toutes les combinaisons possibles à partir d'une liste à l'aide de permutations, il est courant de rencontrer le problème d'exclure les répétitions. Dans ce scénario, vous visez à produire les 36 résultats en lançant deux dés, y compris les paires avec le même numéro.
Pour remédier à cette limitation, il est nécessaire d'utiliser le concept du produit cartésien. Le produit cartésien de deux ensembles représente le produit direct de ces ensembles. Dans ce cas, le produit cartésien de votre ensemble contenant [1, 2, 3, 4, 5, 6] avec lui-même serait {1, 2, 3, 4, 5, 6} x {1, 2, 3, 4 , 5, 6}.
La bibliothèque standard Python fournit le module itertools, qui offre la fonctionnalité permettant de calculer des produits cartésiens. En utilisant la méthode du produit et en spécifiant le paramètre de répétition avec le nombre de répétitions souhaité (par exemple, répétition=2), vous pouvez générer toutes les combinaisons possibles, y compris les répétitions.
Par exemple :
import itertools die_faces = [1, 2, 3, 4, 5, 6] result = [p for p in itertools.product(die_faces, repeat=2)]
Ce code produira le résultat suivant :
[(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (2, 1), (2, 2), (2, 3), (2, 4), (2, 5), (2, 6), (3, 1), (3, 2), (3, 3), (3, 4), (3, 5), (3, 6), (4, 1), (4, 2), (4, 3), (4, 4), (4, 5), (4, 6), (5, 1), (5, 2), (5, 3), (5, 4), (5, 5), (5, 6), (6, 1), (6, 2), (6, 3), (6, 4), (6, 5), (6, 6)]
Ce résultat inclut les 36 résultats possibles pour lancer deux dés, garantissant que les répétitions sont pris en compte.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!