Maison > développement back-end > Tutoriel Python > Comment puis-je générer efficacement des produits cartésiens de plusieurs listes en Python ?

Comment puis-je générer efficacement des produits cartésiens de plusieurs listes en Python ?

Mary-Kate Olsen
Libérer: 2024-12-24 16:55:21
original
105 Les gens l'ont consulté

How Can I Efficiently Generate Cartesian Products of Multiple Lists in Python?

Générer des produits cartésiens à partir de plusieurs listes

Obtenir le produit cartésien de plusieurs listes, où chaque combinaison possible de valeurs est produite, est une opération courante tâche en programmation. En utilisant itertools.product, un puissant module Python disponible depuis Python 2.6, vous pouvez atteindre cet objectif sans effort.

Pour utiliser itertools.product, fournissez simplement les listes que vous souhaitez combiner comme arguments. Par exemple, étant donné l'ensemble de listes suivant :

somelists = [
   [1, 2, 3],
   ['a', 'b'],
   [4, 5]
]
Copier après la connexion

Vous pouvez obtenir le produit cartésien comme suit :

import itertools

for element in itertools.product(*somelists):
    print(element)
Copier après la connexion

Ce code génère efficacement toutes les combinaisons possibles de valeurs à partir des listes d'entrée . Le résultat serait :

(1, 'a', 4)
(1, 'a', 5)
(1, 'b', 4)
(1, 'b', 5)
(2, 'a', 4)
(2, 'a', 5)
...
Copier après la connexion

Alternativement, si les listes étaient explicitement transmises en tant qu'arguments séparés, le code ressemblerait à ceci :

for element in itertools.product([1, 2, 3], ['a', 'b'], [4, 5]):
    print(element)
Copier après la connexion

En utilisant la flexibilité de itertools.product , vous pouvez facilement gérer les cas complexes où les données d'entrée sont constituées de listes imbriquées ou de listes de longueurs variables.

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