lambda让我们可以创建一个匿名函数,可取代def形式,lambda的用法如下
lambda [arg1 [,arg2, ... argN]] : expression
lambda 函数直接调用
(lambda x,y:x-y)(3,4)
>>>-1
(lambda x:2*x )(8)
>>>16
匿名函数本质时一个函数对象,将其赋值给另一个变量,再由该变量来调用函数
(lambda x,y:x if x<y else y)(1,2)
>>>1
#科里化
(lambda x:(lambda y:(lambda z:x+y+z)(1))(2))(3)
>>>6
#递归
func=lambda n:1 if n==0 else n *func(n-1)
func(5)
>>>120
匿名函数常见的使用场景:sorted对可迭代对象排序
from collections import namedtuple
users = [('lanyulei',18),('kangjianwei',88)]
sorted(users,key=lambda x :x.age,reverse=True)