Python —— C + + 中与短形式“ if”等价的语言

可能的复制品:
Python 三元运算符

有没有用 Python 编写这段 C/C + + 代码的方法? a = (b == true ? "123" : "456" )

161807 次浏览
a = '123' if b else '456'

有关更多信息,请参见 PEP 308

我的神秘版本。

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

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

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

... 在巨蟒语里应该缩写为:

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

... 或者你只是想测试 b 值的真实性..。

a = b and "123" or "456"

字面上可以将 ? :替换为 and or