Je vais l'utiliser de manière insensée, alors prenez note. Par exemple, lorsque vous souhaitez créer une séquence de n ^ 2
python3
>>> l = [i**2 for i in range(6)]
>>> l
[0, 1, 4, 9, 16, 25]
De cette façon, f (x) pour x dans <iterator>]
retournera une liste de f (x)
.
Si vous écrivez comme ça, vous pouvez vous limiter aux seuls éléments qui remplissent les conditions
python3
>>> l = [i**2 for i in range(6) if i%2 == 0] //je seulement si je suis pair**Renvoie 2
>>> l
[0, 4, 16]
Si vous souhaitez modifier la valeur selon que la condition est remplie, utilisez if else pour la faire ressembler à ceci
python3
>>> l = [i**2 if i%2 == 0 else 'odd' for i in range(6)]
>>> l
[0, 'odd', 4, 'odd', 16, 'odd']
Peut être imbriqué
python3
>>> l = [(i, j) for i in range(3) for j in ['a','b','c']]
>>> l
[(0, 'a'),
(0, 'b'),
(0, 'c'),
(1, 'a'),
(1, 'b'),
(1, 'c'),
(2, 'a'),
(2, 'b'),
(2, 'c')]
Recommended Posts