Bonjour,
Savez-vous s'il est possible de réaliser un produit cartésien sur E1 x E2 x ... x En mais où n n'est pas fixé à l'avance à l'aide de la fonction product de itertools, sans la reprogrammer.
Merci d'avance,
Vincent
Bonjour,
Savez-vous s'il est possible de réaliser un produit cartésien sur E1 x E2 x ... x En mais où n n'est pas fixé à l'avance à l'aide de la fonction product de itertools, sans la reprogrammer.
Merci d'avance,
Vincent
Bonsoir,
Si j'ai 2 ensembles, je fais :
Mais si j'ai une liste d'ensembles : L =[ [1,2,3], [4,5], ['a','b','c']], je ne vois pas comment faire, product(L) ne fonctionne pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 from itertools import product for cas in product([1,2,3], [4,5]) : print(cas)
Au pire, je l'ai reprogrammée :
Mais je me demandais si on pouvais faire cela facilement avec product.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 def produit(L) : l = len(L) indices = [0] * l while indices[0] < len(L[0]) : cas = [L[i][indices[i]] for i in range(l) ] print(cas) indices[-1] = indices[-1] + 1 j = -1 while j > -l and indices[j] == len(L[j]) : indices[j] = 0 j = j -1 indices[j] = indices[j] + 1
Merci,
Vincent
Bonsoir,
Mais c'est bien-sûr ! Grand merci, je me doutais que l'on ne pouvait pas faire avec ce genre d'appel... J'avais oublié la possibilité de "unpacker", que je n'utilise pas souvent.
C'est parfait, merci pour la réponse très rapide comme d'habitude. Cela va simplifier mon TD (même si le reprogrammer est intéressant).
Vincent
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager