西大 发表于 2018-8-10 07:57:42

Python自学之lambda表达式

  对于某些Python函数,有时我们只会在很少的情况下使用一两次,但是定义时又需要给函数名命名,使用lambda就不需要考虑命名的问题了,可以简化代码提高可读性
  举例:
  如下函数,计算x的2倍
  >> def doubleX(x):
  return 2 * x
  >> doubleX(5)
  10
  >>
  是用lambda后变为
  >> g = lambda x : 2 * x      //lambda后接参数名,冒号后接返回值
  >> g(5)
  10
  >>
  两个参数举例比较
  >> def add(x,y):
  return x + y
  >> add(3,4)
  7
  >> g = lambda x,y : x + y
  >> g(3,4)
  7
  >>
  再次举例看看
  filter(),该函数有两个参数,第一个为None或者另一个函数,第二个为列表,其作用是将第二个参数列表中的每个值放入第一个参数的函数中计算结果,将所有结果为True的值放入一个新的列表中,如:
  >> list(filter(None,))
              //中的每个值,由于第一个参数为None,只需看第一个和第四个为True,返回这个两个值的列表
  >>
  举例:返回列表中的奇数,如range(10)
  一般为:
  >> def odd(x):
  return x % 2
  >> temp = range(10)
  >> show = filter(odd,temp)
  >> list(show)
  
  使用lambda
  >> list(filter(lambda x : x % 2,range(10)))
  
  >>
页: [1]
查看完整版本: Python自学之lambda表达式