Compréhension "multiple"☘
Un exemple☘
On veut définir la liste des couples (1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)
ou plus généralement la liste des couples (i,j) pour i entre 1 et n et j entre 1 et n (où n est un entier).
On peut procéder ainsi (avec n = 3):
listeCouples = []
for i in range(1, 4):
for j in range(1, 4):
listeCouples.append(i,j)
Ou par compréhension:
listeCouples = [(i,j) for i in range(1,4) for j in range(1,4)]
Exercice☘
Comment pourriez-vous définir par compréhension la liste A
suivante:
[ ('a', 0), ('a', 1), ('a', 2),
('b', 0), ('b', 1), ('b', 2),
('c', 0), ('c', 1), ('c', 2)
]
Solution
A = [(c,i) for c in 'abc' for i in range(3)]
Exercice☘
Comment pourriez-vous définir par compréhension la liste A
suivante:
[ (1, 2), (1, 3), (1, 4), (1, 5), (1, 6),
(2, 3), (2, 4), (2, 5), (2, 6),
(3, 4), (3, 5), (3, 6),
(4, 5), (4, 6),
(5, 6)
]
Solution
A = [(i,j) for i in range(1,7) for j in range(i+1,7)]
A = [(i,j) for i in range(1,7) for j in range(1,7) if j > i]