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 ?

Comment puis-je générer toutes les permutations avec des répétitions à partir d'une liste en Python ?

Patricia Arquette
Libérer: 2024-12-26 02:48:12
original
395 Les gens l'ont consulté

How Can I Generate All Permutations with Repetitions from a List in 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)]
Copier après la connexion

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)]
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal