Ответ 1
a = '123' if b else '456'
Возможный дубликат:
Терминальный оператор Python
Есть ли способ написать этот код C/С++ в Python?
a = (b == true ? "123" : "456" )
Большое спасибо!
a = '123' if b else '456'
В то время как a = 'foo' if True else 'bar'
является более современным способом выполнения тройного оператора if (python 2.5+), эквивалент вашей версии 1 к 1 может быть:
a = (b == True and "123" or "456" )
... который в python должен быть сокращен до:
a = b is True and "123" or "456"
... или если вы просто хотите проверить правдивость значения b в целом...
a = b and "123" or "456"
? :
можно буквально поменять на and or
Моя загадочная версия...
a = ['123', '456'][b == True]
Подробнее см. PEP 308.