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

Этот вопрос уже имеет ответ здесь:

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

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

if condition:
    var = something
else:
    var = something_else

Принимая во внимание, что в C это было бы:

var = condition? something: something_else;

Несколько раз в файле прекрасен, но если у Вас есть много условных присвоений, количество строк взрывается и, худшее из всех, глаз оттянут им.

Мне нравится краткость условного оператора, потому что это сохраняет вещи, которые я считаю нестратегическими от отвлечения меня при просматривании кода.

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

88
задан Will 18 July 2013 в 18:05
поделиться

2 ответа

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

variable = something if condition else something_else

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

variable = (condition and something) or something_else
163
ответ дан 24 November 2019 в 07:31
поделиться

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

condition and something or something_else

однако он был заменен значительно более совершенной конструкцией ... if ... else ... :

something if condition else something_else
14
ответ дан 24 November 2019 в 07:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: