可能重复:
Python Ternary Operator
有没有办法用Python编写这个C / C ++代码?
a = (b == true ? "123" : "456" )
答案 0 :(得分:191)
a = '123' if b else '456'
答案 1 :(得分:18)
虽然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
答案 2 :(得分:13)
我神秘的版本......
a = ['123', '456'][b == True]
答案 3 :(得分:1)
有关详细信息,请参阅PEP 308。