Recherche de toutes les combinaisons d'une liste de listes
En Python, une tâche courante consiste à obtenir toutes les combinaisons possibles d'éléments d'une liste donnée de listes. Comprendre comment y parvenir est essentiel pour diverses tâches de manipulation de données. Par exemple, supposons que vous ayez une liste qui représente un ensemble d’options et que vous souhaitiez générer tous les résultats potentiels en sélectionnant un élément de chacune de ces options. C'est là que se pose le besoin de fonctions de combinaison.
Le module itertools fournit un outil pratique appelé itertools.product. Cette fonction prend plusieurs itérables en entrée et renvoie un produit cartésien de leurs éléments, donnant toutes les combinaisons possibles. Dans notre cas, chaque liste dans les données d'entrée est un itérable, et le produit de toutes ces listes nous donnera les combinaisons requises.
Par exemple, considérons la liste de listes suivante :
[[1, 2, 3], [4, 5, 6], [7, 8, 9, 10]]
En utilisant itertools.product, nous pouvons générer toutes les combinaisons comme celle-ci :
import itertools a = [[1, 2, 3], [4, 5, 6], [7, 8, 9, 10]] combinations = list(itertools.product(*a))
Le résultat sera le suivant suit :
[(1, 4, 7), (1, 4, 8), (1, 4, 9), (1, 4, 10), (1, 5, 7), (1, 5, 8), (1, 5, 9), (1, 5, 10), (1, 6, 7), (1, 6, 8), (1, 6, 9), (1, 6, 10), (2, 4, 7), (2, 4, 8), (2, 4, 9), (2, 4, 10), (2, 5, 7), (2, 5, 8), (2, 5, 9), (2, 5, 10), (2, 6, 7), (2, 6, 8), (2, 6, 9), (2, 6, 10), (3, 4, 7), (3, 4, 8), (3, 4, 9), (3, 4, 10), (3, 5, 7), (3, 5, 8), (3, 5, 9), (3, 5, 10), (3, 6, 7), (3, 6, 8), (3, 6, 9), (3, 6, 10)]
Cela démontre comment itertools.product peut générer efficacement toutes les combinaisons possibles d'éléments à partir d'une liste de listes. Il offre une solution élégante et efficace à cette tâche de programmation courante.
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!