в Python? (условное/тернарный оператор) для назначений [дубликат]


этот вопрос уже есть ответ здесь:

C и многие другие языки имеют условный (он же троичный) оператора. Это позволяет сделать очень краткий выбор между двумя значениями, основанными на истинности условия, которое делает выражения, включая задания, очень лаконичны.

Я пропускаю это, потому что я нахожу, что мой код имеет много условных назначений, которые занимают четыре строки в Python:

if condition:
    var = something
else:
    var = something_else

тогда как в C это было бы:

var = condition? something: something_else;

один или два раза в файле-это нормально, но если у вас много условных назначений, количество строк взрывается и, что хуже всего, глаз обращается к ним.

мне нравится краткость условного оператора, потому что он сохраняет вещи I считаем, что ООН-стратегический отвлекать меня, когда пробегая код.

Итак, в Python есть ли какие-либо трюки, которые вы можете использовать, чтобы получить назначение на одну строку, чтобы приблизить преимущества условного оператора, как я их описал?

2 78

2 ответа:

Python имеет такой оператор:

variable = something if condition else something_else

альтернативно, хотя и не рекомендуется (см. комментарий @karadoc):

variable = (condition and something) or something_else

в старом коде Python вы можете увидеть трюк:

condition and something or something_else

однако, это было заменено значительно превосходящим ... if ... else ... конструкция:

something if condition else something_else