lambda 是为了减少单行函数的定义而存在的。
如果可以使用for...in...if来完成的,坚决不用lambda。
g = lambda x:x+1
g(1)
>>>2
g(2)
>>>3
当然,你也可以这样使用:
(lambda x:x+1)(1)
>>>2
可以这样认为,lambda作为一个表达式,定义了一个匿名函数,上例的代码x为入口参数,x+1为函数体,用函数来表示为:
def g(x):
return x+1
map函数中:
map(lambda x: x * 2 + 10, foo)
例子1:
>>> f = lambda x,y,z:x+y+z
>>> f(1,2,3)
6
例子2:
>>> def action(x):
return lambda y:x+y
>>> a = action(2)
>>> a(22)
24
>>> b=lambda x:lambda y:x+y
>>> a=b(3)
>>> a(2)
5
>>> (b(2))(2)
4