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
Partager