Python三元表达式

作者: nummycode | 来源:发表于2016-04-18 14:32 被阅读3547次

在java或者其他语言中,三元表达式的形式如下:

// 如果条件为真,则返回这为x,否则为y
result=condition?x:y

而在python中三元表达式的语法如下:

result = x if condition else y

看起来有点别扭,实际上还可以这样写:

result = (x, y)[condition]

这样反而更简单易懂。

相关文章

网友评论

  • 师域: @nummy
    从元组元素整数索引角度看
    (x,y)中x,y的索引分别为0,1,
    所以
    (x,y)[condition] 在condition==True时返回y,否则返回x

    这样理解不知是否正确
  • 师域: @nummy
    jupyter (python2.7)测试
    x,y = 1,2
    x if x<y else y #返回数字 1
    (x,y)[x<y] #返回数字 2
  • 师域:谢谢分享。第二个表达式与pandas的df[df>0]类似。第二个更加简洁。
  • 金发萌音:写错了 正确的应该是
    result = x if condiction *else* y

    用or 的情况是
    result = x or y

    会对x 转化为Boolean 类型后判断,如果为真则 result 为x 否则为y
    nummycode:@金发萌音 谢谢指正,已修改 :smile:
    金发萌音:修改后会加入 专题 生活不易,我用python

本文标题:Python三元表达式

本文链接:https://www.haomeiwen.com/subject/jjlalttx.html