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
Susan Sarandonoriginal
2025-01-04 12:23:38347parcourir

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)

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)

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)
...

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!

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