【问题标题】:Python-equivalent of short-form "if" in C++ [duplicate]C ++中短形式“if”的Python等效项[重复]
【发布时间】:2010-12-13 18:29:57
【问题描述】:

可能重复:
Python Ternary Operator

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

【问题讨论】:

标签: c++ python syntax


【解决方案1】:
a = '123' if b else '456'

【讨论】:

【解决方案2】:

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

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

【讨论】:

  • 我应该注意,如果“123”值实际上是一个空字符串或计算结果为假值,那么这里的 and..or 方法可能会适得其反。 if..else 更安全一些。
【解决方案3】:

我的神秘版本...

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

【讨论】:

  • 这是在单行 if 语句可能之前的旧方法之一,对吧?有点像你如何用逻辑做到这一点:True and "foo" or "bar"
【解决方案4】:

请参阅PEP 308 了解更多信息。

【讨论】:

  • 虽然这在理论上可以回答问题,it would be preferable 在此处包含答案的基本部分,并提供链接以供参考。
  • 这不是一个详尽的答案,我认为它没有帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-09
  • 2013-07-03
  • 1970-01-01
相关资源
最近更新 更多