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

Comment générer toutes les combinaisons d'éléments à partir d'une liste de listes en Python ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-02 16:54:11413parcourir

How can I generate all combinations of elements from a list of lists in Python?

Génération de toutes les combinaisons d'une liste de listes

Lorsqu'il s'agit de structures de données imbriquées, il devient essentiel de les manipuler efficacement. Une tâche courante consiste à récupérer toutes les combinaisons possibles d'éléments sur plusieurs listes.

Pour les développeurs Python, la fonction itertools.product fournit une solution concise et élégante à ce problème. Il prend plusieurs itérables comme arguments et génère des tuples représentant toutes les combinaisons possibles d'éléments de chaque itérable.

Réponse :

Pour générer toutes les combinaisons d'éléments dans une liste de listes , utilisez itertools.product comme suit :

import itertools

my_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9, 10]]

result = list(itertools.product(*my_list))

Cela produira une liste de tuples, chacun représentant une combinaison unique d'éléments des listes d'entrée.

Exemple de sortie :

[(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)]

L'utilisation d'itertools.product est un moyen pratique et efficace de générer toutes les combinaisons possibles d'éléments à partir de listes d'entrée complexes. structures de données en Python.

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!

Déclaration:
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