Python匿名函数lambda
语法格式:
lambda args: expression
args:以逗号分隔的参数列表
expression:用到args中各参数的表达式
lambda语句定义的代码必须是合法的表达式,不能出现多条件语句,(可使用if的三元表达式)和其他非表达式语句,如for和while等
用途:指定短小的回调函数,将返回一个函数而不是将函数赋值给某变量名
注意:lambda是一个表达式而非语句,是一个单个表达式,而不是代码块
def语句创建的函数将赋值给某变量名,而lambda表达式则直接返回函数,lambda也支持使用默认参数
匿名函数使用示例
In [1]: f1 = lambda x,y: x + y
In [2]: f1(22,44)
Out[2]: 66
In [3]: def f2(x,y): return x + y
In [4]: f2(22,44)
Out[4]: 66
In [5]: l3 = [(lambda x: x*2),(lambda y:y*3)]
In [6]: for i in l3: print i(4)
8
12
In [7]: def f3(x,y,z): return x+y+z
In [8]: f3(4,5,6)
Out[8]: 15
In [9]: f4 = lambda x,y,z: x+y+z
In [10]: f4(4,5,6)
Out[10]: 15
In [11]: f5 = (lambda x,y,z=10: x+y+z)
In [12]: f5(4,5)
Out[12]: 19