valor ternario ternaria significa relacionales que operadores operador else ejemplos asignacion python c language-features

ternario - que significa != en python



Python?(condicional/ternario) operador para asignaciones (2)

Esta pregunta ya tiene una respuesta aquí:

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