Podemos usar elif
na compreensão de listas?
Exemplo:
l = [1, 2, 3, 4, 5]
for values in l:
if values==1:
print 'yes'
elif values==2:
print 'no'
else:
print 'idle'
Podemos incluir o elif
em nossa lista de compreensão, de maneira semelhante ao código acima?
Por exemplo, uma resposta como:
['yes', 'no', 'idle', 'idle', 'idle']
Até agora, eu só usei if
e else
na compreensão de listas.
['yes', 'no']
ser feito. Para fazer isso, você pode fazer:['yes' if v == 1 else 'no' for v in l if values in [1,2]]
. Atualmente, não consigo pensar em uma maneira mais limpa de fazer isso.fonte
'A' if grade>=90 else 'B' if grade>=80 else 'C' if grade>=70 else 'F'
.d
fora da compreensão?Você pode, mais ou menos.
Observe que quando você usa o sytax como:
Você está usando a forma ternária do operador if / else (se estiver familiarizado com linguagens como C, é como a
?:
construção(v == 1 ? 'yes' : 'no')
:).A forma ternária do operador if / else não tem um 'elif' embutido, mas você pode simulá-lo na condição 'else':
É como dizer:
Portanto, não há uma construção 'elif' direta como você perguntou, mas pode ser simulada com instruções if / else aninhadas.
fonte
Talvez você queira isto:
fonte
Você pode usar a compreensão de lista se for criar outra lista a partir do original.
fonte
Outra maneira fácil é usar a compreensão de lista condicional como esta:
fornece a resposta correta:
['sim', 'não', 'ocioso', 'ocioso', 'ocioso']
fonte