C++中的短形式”IF”的Python等价

Python-equivalent of short-form “if” in C++

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Python Ternary Operator

有没有办法在Python中编写这个C/C++代码?a = (b == true ?"123" :"456" )


1
a = '123' if b else '456'


虽然a = 'foo' if True else 'bar'是执行三元if语句(python 2.5+)的更现代的方法,但您的版本的1对1等价物可能是:

1
a = (b == True and"123" or"456" )

…在python中应该缩短为:

1
a = b is True and"123" or"456"

…或者如果你只是想测试B值的真实性…

1
a = b and"123" or"456"

从字面上看,? :可以换成and or


我的神秘版本…

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


更多信息请参见PEP 308。