目录
一、lambda的应用场景
如果一个函数有一个返回值,并且只有一句代码,可以使用lambda简化
二、lambda语法
lambda 参数列表: 表达式
注意:
- lambda表达式的参数可有可无,函数的参数在lambda表达式中完全适用。
- lambda表达式能接收任何数量的参数但只能返回一个表达式的值。
- 直接打印lambda表达式,输出的是此lambda的内存地址。
快速体验:
# 函数
def testA():
return 100
print(testA) # <function testA at 0x0000015D0DD73E20> --内存地址
print(testA()) # 100
# lambda表达式
testB = lambda: 100
print(testB) # <function <lambda> at 0x0000015D0DE8A0E0> --内存地址
print(testB()) # 100
# lambda实现两个数字的累加和
testC = lambda a,b : a + b
print(testC(10,20)) # 30
三、lambda的参数形式
1. 无参数
testA = lambda:100
print(testA()) # 100
2. 一个参数
testA = lambda a: a
print(testA('hello')) # hello
3. 默认参数
testA = lambda a, b, c=30: a + b + c
print(testA(10,20)) # 60
4. 可变参数:*args
testA = lambda *args: args
print(testA(10,20,30)) # (10, 20, 30)
注意:这里的可变参数传入到lambda之后,返回值为元组。
5. 可变参数:**kwargs
testA = lambda **kwargs:kwargs
print(testA(name='张三',age=18)) # {'name': '张三', 'age': 18}
三、lambda的应用
1. 带判断的lambda
testA = lambda a,b: a if a > b else b
print(testA(10,20)) # 20