使用 lambda 来创建匿名函数
lambda [arg1 [,arg2,.....argn]]:expression
例1:传入多个参数的lambda函数
p = lambda x,y:x+y
print(p(4,6))
例2:传入一个参数的lambda函数
a=lambda x:x*x
print(a(3))
例3:多个参数的lambda形式
a = lambda x,y,z:(x+8)*y-z
print(a(5,6,8))
例4:带 if/else
>>>( lambda x, y: x if x < y else y )( 1, 2 )
1
例5:嵌套函数
>>>( lambda x: ( lambda y: ( lambda z: x + y + z )( 1 ) )( 2 ) )( 3 )
6
例6:递归函数
>>> func = lambda n:1 if n == 0 else n * func(n-1)
>>> func(5)
120
注:
1、lambda不能包含超过一个表达式,不能包含命令
2、 lambda 是一个表达式,而不是一个语句。
3、冒号前是参数,可以有多个,用逗号隔开,冒号右边的为表达式。其返回值是一个函数的地址,也就是函数对象。
参考:https://www.cnblogs.com/kaishirenshi/p/8611358.html
https://blog.youkuaiyun.com/weixin_39850697/article/details/110805196