Python3的语法糖和解析式

发布时间:2019-09-26 07:33:19编辑:auto阅读(1909)

    Python语言发展到3.X以来,增加了许多语法糖,例如:

    1. 三元表达式
      x = int(input('>>>'))
      y = 3
      print(x if x > y else y)
      #等效于:
      if x > y:
      print(x)
      else:
      print(y)

      2.封装与解构

      a = 4
      b = 5
      tmp = a
      a = b 
      b = tmp
      #等价于
      a,b = b,a
      #上句中,等号右边使用了封装(元组),左边使用了解构。

      3.解析式
      1).列表解析式:

           #语法:
                   [expr for item in itemable fi cond1 if cond2]
                   #等价于
                   lst = [ ]
                   for item in iterable:
                        if cond1:
                                  if cond2:
                                          lst.append(expr)
                   [expr for i in iterable1 for j in iterable2]
                   #等价于
                   lst  = [ ]
                   for i in iterable1:
                        for j in iterabe2:
                                   lst.append(expr)

      2).集合解析式

           {expr for item in iterable if cond}
           # expr must be hashable

      3).字典解析式

           {key:value  for item in iterable if cond }

      解析式的作用
      1).Python解释器为解析式专门作了优化,多写解析式会让程序更简洁高效。
      2).解析式就是能把程序语句写得像函数表达式一样,体现Python3面向对象的函数式编程的特点。通过嵌套的解析式,搭建程序的骨架,然后替换相应的数据结构头部(比如列表解析式的头部为列表...),就能优雅 高效地构造出一般的程序。

关键字