¿Podemos usarlo elif
en la comprensión de listas?
Ejemplo:
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 la elif
comprensión en nuestra lista, de manera similar al código anterior?
Por ejemplo, una respuesta como:
['yes', 'no', 'idle', 'idle', 'idle']
Hasta ahora, solo he usado if
y else
en comprensión de listas.
['yes', 'no']
estar hecho. Para ello, se puede hacer:['yes' if v == 1 else 'no' for v in l if values in [1,2]]
. Actualmente no puedo pensar en una forma más limpia de hacer esto.fuente
'A' if grade>=90 else 'B' if grade>=80 else 'C' if grade>=70 else 'F'
.d
fuera de la comprensión?Puedes, más o menos.
Tenga en cuenta que cuando usa sytax como:
Está utilizando la forma ternaria del operador if / else (si está familiarizado con lenguajes como C, esto es como la
?:
construcción :)(v == 1 ? 'yes' : 'no')
.La forma ternaria del operador if / else no tiene un 'elif' incorporado, pero puede simularlo en la condición 'else':
Esto es como decir:
Por lo tanto, no hay una construcción 'elif' directa como la que preguntó, pero se puede simular con declaraciones if / else anidadas.
fuente
Tal vez quieras esto:
fuente
Puede utilizar la comprensión de listas si va a crear otra lista a partir del original.
fuente
Otra forma fácil es usar la comprensión de listas condicional como esta:
te da la respuesta correcta:
['sí', 'no', 'inactivo', 'inactivo', 'inactivo']
fuente