2 votes

Iterate/Enumerate sur un sous-ensemble de N^5 en Python

J'ai un sous-ensemble de ℕ 5 , vecteurs à cinq dimensions dont les éléments se situent dans les nombres naturels. Ce sous-ensemble est défini comme le produit des intervalles [ a 1 , a 2 ]×[ b 1 , b 2 ]×...×[ f 1 , f 2 ], et je voudrais énumérer les sous-ensembles de taille 1, c'est-à-dire les vecteurs ( x 1 , x 2 , x 3 , x 4 , x 5 ) où x 1 est en [ a 1 , a 2 ], x 2 est en [ b 1 , b 2 etc. Quelle est la meilleure façon de procéder ?

2voto

enrico.bacis Points 7085

C'est le produit cartésien et vous pouvez utiliser itertools.product pour le calculer :

a = [0, 1]
b = [2, 3]
c = [4, 5]
d = [6, 7]
e = [8, 9]

for subset in product(a, b, c, d, e):
    print(subset)

sortie

(0, 2, 4, 6, 8)
(0, 2, 4, 6, 9)
(0, 2, 4, 7, 8)
(0, 2, 4, 7, 9)
(0, 2, 5, 6, 8)
(0, 2, 5, 6, 9)
(0, 2, 5, 7, 8)
(0, 2, 5, 7, 9)
(0, 3, 4, 6, 8)
(0, 3, 4, 6, 9)
(0, 3, 4, 7, 8)
(0, 3, 4, 7, 9)
(0, 3, 5, 6, 8)
(0, 3, 5, 6, 9)
(0, 3, 5, 7, 8)
(0, 3, 5, 7, 9)
(1, 2, 4, 6, 8)
(1, 2, 4, 6, 9)
(1, 2, 4, 7, 8)
(1, 2, 4, 7, 9)
(1, 2, 5, 6, 8)
(1, 2, 5, 6, 9)
(1, 2, 5, 7, 8)
(1, 2, 5, 7, 9)
(1, 3, 4, 6, 8)
(1, 3, 4, 6, 9)
(1, 3, 4, 7, 8)
(1, 3, 4, 7, 9)
(1, 3, 5, 6, 8)
(1, 3, 5, 6, 9)
(1, 3, 5, 7, 8)
(1, 3, 5, 7, 9)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X