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

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

DDD
Libérer: 2024-12-10 11:58:14
original
975 Les gens l'ont consulté

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

Combinaisons d'une liste de listes en Python

En programmation, combiner des éléments de plusieurs listes est une tâche courante. Cette question porte sur la génération de toutes les combinaisons possibles d'éléments à partir d'une liste de listes, quelle que soit sa taille.

Pour y parvenir, la bibliothèque Python propose une solution ingénieuse utilisant la fonction itertools.product. Cette fonction prend un nombre variable d'itérables en entrée et renvoie un produit cartésien, qui produit essentiellement toutes les combinaisons possibles d'éléments de chaque itérable.

Par exemple, considérons la liste de listes d'entrée : [[1,2 ,3],[4,5,6],[7,8,9,10]].

import itertools
a = [[1,2,3],[4,5,6],[7,8,9,10]]
combinations = list(itertools.product(*a))
Copier après la connexion

La liste de combinaisons résultante contiendra toutes les combinaisons possibles des éléments de les listes d'entrée :

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

Grâce à la puissance d'itertools.product, générer des combinaisons à partir d'une liste de listes devient une opération concise et élégante 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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal