Maison > développement back-end > Tutoriel Python > Comment puis-je générer toutes les combinaisons possibles à partir d'une liste de listes en Python ?

Comment puis-je générer toutes les combinaisons possibles à partir d'une liste de listes en Python ?

Barbara Streisand
Libérer: 2024-12-06 01:45:10
original
990 Les gens l'ont consulté

How Can I Generate All Possible Combinations from a List of Lists in Python?

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

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

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

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!

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