lamdba为一个表达式,函数体比def简单。它的主体是一个表达式,而不是一个代码块,仅仅能在lamdba表达式中封装有限的逻辑进去。
举例如下:
>>> f = lambda x:x*x
>>> print f(3)
9
定义一个lambda表达式,求三个数的和
>>> f1 = lambda x,y,z:x+y+z
>>> print f1(2,3,10)
15
用lambda表达式求n的阶乘
>>> n=5
>>> reduce(lambda x,y:x*y,range(1,n+1))
120
lambda表达式也可以用在def函数中
#定义一个action函数,返回一个lambda表达式同时调用了action函数作用域的变量x
>>> def action(x):
... return lambda y:x+y
...
#a为返回的lambda表达式,a(3)即返回了x+y
>>> a=action(2)
>>> a(3)
5
还可以将上述函数直接写成lambda表达式
>>> a=action(2)
>>> a(3)
5