匿名函数 lambda
匿名函数:一句话函数,比较简单的函数,没有函数名的函数
在Python中,lambda的语法是唯一的
lam=lambda a,b:a+b
lam=lam(a=1,b=2) # 传参
print(lam) # 3
lmbda的语法是唯一的。其形式如下:lambda argument_list: expression其中,lambda是Python预留的关键字,argument_list和expression由用户自定义
语法
- lambda语句中,冒号前是参数,可以有0个或多个,用逗号隔开,冒号右边是返回值
- lambda语句构建的其实是一个函数对象
1、无参数
lam=lambda :'你好'
print(lam)# <function <lambda> at 0x000001D2B4B60680>
print(lam()) # 你好
2、有参数,无默认值
lam=lambda a,b:a+b
print(lam) # <function <lambda> at 0x00000272FB7E0680>
lam=lam(a=1,b=2)
print(lam) # 3
3、有参数,有默认值
lam=lambda a=3,b=5:a+b
print(lam) # <function <lambda> at 0x00000272FB7E0680>
lam=lam() # 没有写参数使用默认的参数,是3和5
# 指定单独一个参数,没有指定的也会使用默认值
print(lam) # 8
4、lambda返回的函数还可以做为另一个函数的参数
lam=lambda a=3,b=5:a+b
print(lam())
def test(a,b,c):
print(a+b+c)
test(lam(),1,1) #10
# lam作为test函数的参数来传递
特性
- lambda函数是匿名的:所谓匿名函数,通俗地说就是没有名字的函数。lambda函数没有名字
- lambda函数有输入和输出:输入是传入到参数列表argument_list的值,输出是根据表达式expression计算得到的值
- lambda函数一般功能简单:单行expression决定了lambda函数不可能完成复杂的逻辑,只能完成非常简单的功能。由于其实现的功能一目了然,甚至不需要专门的名字来说明
用法
由于lambda语法是固定的,其本质上只有一种用法,那就是定义一个lambda函数。在实际中,根据这个lambda函数应用场景的不同去使用