美文网首页Python中文社区python3呆鸟的Python数据分析
【Python技巧】赋值表达式(海象运算符)

【Python技巧】赋值表达式(海象运算符)

作者: nanarino | 来源:发表于2020-05-05 10:10 被阅读0次

    赋值表达式

    在python3.8中,将赋值语句的 = 前加上一个冒号 :

    它就变成了一个赋值表达式(Assignment expressions)。

    It is affectionately known as “the walrus operator” due to its resemblance to the eyes and tusks of a walrus

    由于它和海象的眼睛和长牙相似,它被亲切地称为海象运算符

    赋值表达式会在赋值的同时返回左值的引用。

    用例

    • if,while中使用:

      cur.execute('select t1.id, t1.name from t1')
      row = cur.fetchone()
      while row:
          print("id=%d, name=%s" % (row[0], row[1]))
          row = cur.fetchone()
      

      在这个示例中,赋值表达式可以减少部分代码:

      cur.execute('select t1.id, t1.name from t1')
      while row:=cur.fetchone():
          print("id=%d, name=%s" % (row[0], row[1]))
      
    • 短路用法使用

      n = 0
      for char in txt:
        if char == 'p':
            n += 1
      print(n)
      

      使用短路和赋值表达式可以修改为:

      n = 0
      for char in txt:
        (char == 'p') and (n := n + 1)
      print(n)
      

    备注

    我的版本:Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 23:03:10) [MSC v.1916 64 bit (AMD64)] on win32

    相关文章

      网友评论

        本文标题:【Python技巧】赋值表达式(海象运算符)

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