ternario - que significa != en python
Python?(condicional/ternario) operador para asignaciones (2)
Esta pregunta ya tiene una respuesta aquí:
- ¿Python tiene un operador condicional ternario? 22 respuestas
C y muchos otros lenguajes tienen un operador condicional (aka ternario) . Esto le permite tomar decisiones muy escuetas entre dos valores en función de la verdad de una condición, lo que hace que las expresiones, incluidas las asignaciones, sean muy concisas.
Extraño esto porque me parece que mi código tiene muchas asignaciones condicionales que toman cuatro líneas en Python:
if condition:
var = something
else:
var = something_else
Mientras que en C sería:
var = condition? something: something_else;
Una o dos veces en un archivo está bien, pero si tiene muchas asignaciones condicionales, el número de líneas explota y, lo peor de todo, el ojo se ve atraído por ellas.
Me gusta la concisión del operador condicional porque evita que las cosas que considero no estratégicas me distraigan al rozar el código.
Entonces, en Python, ¿hay algún truco que pueda usar para obtener la asignación en una sola línea para aproximar las ventajas del operador condicional tal como lo describí?
En un código Python más antiguo, puede ver el truco:
condition and something or something_else
sin embargo, esto ha sido reemplazado por el enormemente superior ... if ... else ...
construir:
something if condition else something_else
Python tiene un operador de este tipo:
variable = something if condition else something_else
Alternativamente, aunque no recomendado (vea el comentario de @ karadoc):
variable = (condition and something) or something_else