Pouvons-nous utiliser elif
dans la compréhension de liste?
Exemple :
l = [1, 2, 3, 4, 5]
for values in l:
if values==1:
print 'yes'
elif values==2:
print 'no'
else:
print 'idle'
Pouvons-nous inclure la elif
compréhension de la liste dans notre liste, d'une manière similaire au code ci-dessus?
Par exemple, une réponse comme:
['yes', 'no', 'idle', 'idle', 'idle']
Jusqu'à présent, je n'ai utilisé if
et else
en compréhension de liste.
['yes', 'no']
d'être fait. Pour ce faire, vous pouvez faire:['yes' if v == 1 else 'no' for v in l if values in [1,2]]
. Je ne peux actuellement pas penser à un moyen plus propre de le faire.la source
'A' if grade>=90 else 'B' if grade>=80 else 'C' if grade>=70 else 'F'
.d
dehors de la compréhension?Vous pouvez, en quelque sorte.
Notez que lorsque vous utilisez une syntaxe comme:
Vous utilisez la forme ternaire de l'opérateur if / else (si vous êtes familier avec des langages comme C, c'est comme la
?:
construction:)(v == 1 ? 'yes' : 'no')
.La forme ternaire de l'opérateur if / else n'a pas de 'elif' intégré, mais vous pouvez le simuler dans la condition 'else':
C'est comme dire:
Il n'y a donc pas de construction 'elif' directe comme vous l'avez demandé, mais elle peut être simulée avec des instructions if / else imbriquées.
la source
Peut-être que vous voulez ceci:
la source
Vous pouvez utiliser la compréhension de liste si vous allez créer une autre liste à partir de l'original.
la source
Un autre moyen simple consiste à utiliser la compréhension de liste conditionnelle comme ceci:
vous donne la bonne réponse:
['oui', 'non', 'inactif', 'inactif', 'inactif']
la source