питон? (условный / тернарный) оператор для присвоений

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

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

if condition: var = something else: var = something_else 

Если в C это будет:

 var = condition? something: something_else; 

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

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

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

  • как сделать потокобезопасный глобальный счетчик в python
  • Автоматизация Excel из Python
  • многопроцессорность с большими данными
  • Должен ли я использовать Conda или Conda Forge при создании среды Anaconda Python?
  • Как я могу получить идентификатор facebook пользователя с django-allauth?
  • Django: Когда настраивать save vs с помощью сигнала после сохранения
  • Неподдерживаемая операция: не записываемый питон
  • простой пример argparse хотел: 1 аргумент, 3 результата
  • 2 Solutions collect form web for “питон? (условный / тернарный) оператор для присвоений”

    У 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 ... construct:

     something if condition else something_else 
    Interesting Posts

    Чтение и отображение изображений тензора

    TypeError: только массивы length-1 могут быть преобразованы в скаляры Python при попытке экспоненциально соответствовать данным

    Построение только верхнего / нижнего треугольника тепловой карты

    Сравнение перечня списков и явных циклов (3 генератора массива быстрее, чем 1 для цикла)

    Инструмент Python Formatter

    Нечеткое сравнение строк в Python, путают с какой библиотекой использовать

    Как получить разрешение монитора в Pygame?

    Проблема Django inspectdb с использованием базы данных Oracle

    Как создать свойство класса только для чтения в Python?

    Как получить / установить локальные переменные функции (извне) в Python?

    Разделение разделенных запятыми строк в python

    Python Selenium (ожидание кадра, поиск элементов)

    Соединитель Python привязывается к любому IP-адресу?

    Python: как обращаться к имени экземпляра?

    Когда использовать Shell = True для модуля подпроцесса Python

    Python - лучший язык программирования в мире.