Maison > développement back-end > Tutoriel Python > Comment itertools.product peut-il générer le produit cartésien de plusieurs listes en Python ?

Comment itertools.product peut-il générer le produit cartésien de plusieurs listes en Python ?

Susan Sarandon
Libérer: 2025-01-04 12:23:38
original
302 Les gens l'ont consulté

How Can itertools.product Generate the Cartesian Product of Multiple Lists in Python?

Produit cartésien de listes multiples avec itertools.product

Pour obtenir le produit cartésien d'un groupe de listes, où toutes les combinaisons possibles de valeurs est généré, utilisez la fonction itertools.product intégrée. Cette fonctionnalité est incluse dans Python depuis la version 2.6.

Implémentation :

import itertools

somelists = [
   [1, 2, 3],
   ['a', 'b'],
   [4, 5]
]

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

Vous pouvez également fournir des arguments séparés à la fonction comme ceci :

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

L’une ou l’autre approche générera la même chose sortie :

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

Remarque :

  • Cette technique est couramment utilisée pour éviter les boucles profondément imbriquées.
  • Si vous avez besoin du cartésien produit de la même liste multiplié par lui-même, pensez à utiliser itertools.product avec des arguments décompressés avec *.
  • L'utilisation de * pour décompresser les arguments dans ce contexte n'est pas différent de son utilisation typique dans les appels de fonction.

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