python - statements - ¿Por qué esta simple expresión condicional no funciona?
python if() (2)
Debiera ser
a = 2 if i in [1, 3, 6] else 7
Puedes leerlo como:
a = (((2 if i in [1, 3, 6] else 7)))
es decir, la expresión en el lado derecho del signo de asignación se evalúa completamente y el resultado se asigna al lado izquierdo. La expresión en sí es dos valores separados por la condición.
Esta pregunta ya tiene una respuesta aquí:
Línea muy simple:
i = 3
a = 2 if i in [1, 3, 6] else a = 7
falla con:
SyntaxError: can''t assign to conditional expression
mientras que expandido como:
if i in [1, 3, 6]:
a = 2
else:
a = 7
funciona bien.
Lo estás usando mal. Úsalo de esta manera:
a = 2 if i in [1, 3, 6] else 7