Utilisation de conditions dans une compréhension de liste
Tu peux faire un truc du genre... imbriquer des expressions conditionnelles :
iterable = [1, 2, 3, 4, 5, 0, -1, -2]
print(["grand" if item > 3 else "moyen" if item > 0 else "vide ou zéro" for item in iterable])
result = []
for item in iterable:
if item > 3:
result.append("grand")
elif item > 0:
result.append("moyen")
else:
result.append("negatif ou zéro")
print(result)
Ok je vois le truc. C'est vrai que ça devient assez vite illisible mais c'était juste par curiosité, pour savoir si c'était possible ou non.
D'ailleurs petite remarque (qui est une question plus qu'une remarque).
Tu m'as montré la structure imbriquée de if / else dans une liste de compréhension : print(["grand" if item > 3 else "moyen" if item > 0 else "negatif ou zéro" for item in iterable]).
Puis un exemple qui produit le même résultat :
result = []
for item in iterable:
if item > 3:
result.append("grand")
elif item > 0:
result.append("moyen")
else:
result.append("negatif ou zéro")
print(result)
On est d'accord que si je veux reproduire stricto sensus la logique derrière le premier exemple (avec les comphéensions de liste), ça donnerait ça ?
result = []
for item in iterable:
if item > 3:
result.append("grand")
else:
if item > 0:
result.append("moyen")
else:
result.append("negatif ou zéro")
print(result)
Inscris-toi
(c'est gratuit !)
Tu dois créer un compte pour participer aux discussions.
Créer un compte