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