Питон-эквивалент короткой формы "if" в С++

Возможный дубликат:
Терминальный оператор Python

Есть ли способ написать этот код C/С++ в Python? a = (b == true ? "123" : "456" )

Большое спасибо!

Ответ 1

a = '123' if b else '456'

Ответ 2

В то время как 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

Ответ 3

Моя загадочная версия...

a = ['123', '456'][b == True]

Ответ 4

Подробнее см. PEP 308.