概念

lambda表达式又称 λ演算、匿名函数。

通常在需要一个函数但是又不想去编写这个简答函数的 场景下就可以使用匿名函数

借助内置函数map来理解lambda表达式的使用。

list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9])) [1, 4, 9, 16, 25, 36, 49, 64, 81]

上述代码其实就是实现了以下功能

def f(x):
    return x*x
list(map(f,[1, 2, 3, 4, 5, 6, 7, 8, 9]))

lambda的基本形式

lambda arg[,...]: expression

  • lambda是python中编写匿名函数的关键字
  • arg 是匿名函数运行所需的1个或者多个参数,多个参数之间用,号分隔开
  • : 分割匿名函数代码和参数的符号
  • expression 是匿名函数代码的功能实现
>>> lambda x: x*2
<function <lambda> at 0x7fcb6ecf38c0>
>>> f = lambda x: x*2
>>> f
<function <lambda> at 0x7fcb6d38bde8>
>>> f(20)
40

>>> f = lambda x,y : x+y
>>> f(20,30)
50

lambda的用途

lambda用在一些较复杂结构序列的sort/sorted、max,min,map-reduce等操作中发挥很大作用

lambda的限制

  • lambda的意义就是免去实现简短函数代码的冗余(这样子会显得比较优雅)

  • 为防止人们对lambda表达式的滥用,python限定其函数代码为一个表达式

  • python2和python3对无参数的lambda支持不一样,一般情况这么做也没有意义

results matching ""

    No results matching ""