C et de nombreuses autres langues ont un opérateur conditionnel (alias ternaire) . Cela vous permet de faire des choix très concis entre deux valeurs basées sur la vérité d'une condition, ce qui rend les expressions, y compris les affectations, très concises.
Cela me manque car je trouve que mon code a beaucoup d'affectations conditionnelles qui prennent quatre lignes en Python:
if condition:
var = something
else:
var = something_else
Alors qu'en C ce serait:
var = condition? something: something_else;
Une ou deux fois dans un fichier, c'est bien, mais si vous avez beaucoup d'assignations conditionnelles, le nombre de lignes explose et, pire encore, l'œil est attiré par elles.
J'aime la complexité de l'opérateur conditionnel, car il empêche les choses que je considère non stratégiques de me distraire lorsque je survole le code.
Donc, en Python, y a-t-il des astuces que vous pouvez utiliser pour obtenir l'affectation sur une seule ligne pour approximer les avantages de l'opérateur conditionnel tel que je les ai décrits?
Python a un tel opérateur:
variable = something if condition else something_else
Alternativement, bien que non recommandé (voir le commentaire de @ karadoc):
variable = (condition and something) or something_else
Dans l'ancien code Python, vous pouvez voir l'astuce:
condition and something or something_else
cependant, cela a été remplacé par le très largement supérieur ... if ... else ...
construction:
something if condition else something_else