【问题标题】:Python ternary operator [duplicate]Python三元运算符[重复]
【发布时间】:2011-05-05 10:58:30
【问题描述】:

可能重复:
Ternary conditional operator in Python

var foo = (test) ? "True" : "False";

这在 Python 中会是什么样子?

如果有不同,请使用 Python 2.7。

【问题讨论】:

    标签: python


    【解决方案1】:

    PEP 308 添加三元运算符:

    foo = "True" if test else "False"
    

    从 Python 2.5 开始实现

    【讨论】:

    • 哇。你比我早了 12 秒,而且每个人的回答都跟我一样。
    • 谢谢,只要允许,我就会接受这个答案:)
    【解决方案2】:

    这个看起来有点像原来的三元:

    foo=a and b or c
    

    【讨论】:

    • f = a or b or c 与 javascript 中的工作方式相同(它返回第一个真值)。
    • -1 注意,有这样一种情况是行不通的:如果条件a 为True 并且b 为任何false 值,例如False、0、None、[], {} 等等,那么结果就是c,错了(应该是b)。例如,(True and [] or [1,2,3]) 等于 [1,2,3],而 ([] if True else [1, 2, 3]) 等于 [],如它应该是。我建议坚持使用官方的三元运算符。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-14
    • 2014-09-29
    • 2011-03-06
    • 2020-06-20
    • 2014-04-20
    • 1970-01-01
    • 2021-04-14
    相关资源
    最近更新 更多