【问题标题】:Ternary operator using print function使用打印功能的三元运算符
【发布时间】:2020-12-26 02:29:27
【问题描述】:
print( (b, a) [a < b] ) 
print((lambda: b, lambda: a)[a < b]()) 

这个功能是如何工作的?
封面背后发生了什么?
这两者有什么区别? (PYTHON)

【问题讨论】:

  • 请提出一个问题。并尝试将这个问题作为标题。

标签: python printing conditional-operator


【解决方案1】:

(b, a) 是一个元组,可以像列表一样被索引——(b, a)[0] 的计算结果为 b(b, a)[1]a。这里的技巧是,在 Python 中,布尔值也像整数一样——False 像 0 和 True 像 1。a &lt; b 计算为布尔值——如果 a 小于 b,则为 True , 到 False 否则。

FWIW Python 有一个真正的三元运算符已经有一段时间了——写这样的东西的正常方法是a if a &lt; b else b。尽管实际上在这种特殊情况下,您可能会选择更短的min(a, b)

【讨论】:

    猜你喜欢
    • 2017-01-18
    • 2021-06-01
    • 2013-01-17
    • 2020-10-11
    • 2021-10-06
    • 1970-01-01
    • 2014-11-27
    • 1970-01-01
    • 2020-03-14
    相关资源
    最近更新 更多