1、lambda只是一个表达式,函数体非常简便,比def定义的函数体量要小很多。
2、lambda不是代码块,只能在表达式中封装一些简单的代码执行逻辑。对于比较复杂的函数逻辑还是得使用def进行函数定义。
3、函数速写,lambda表达式没有函数名标识、又被称为匿名函数。
4、表达式构成:lambda 参数1,参数2:代码逻辑
func = lambda a, b, c: a + b + c
print("三个数的和是 ",func(100, 223, 369))
def func(a):
return lambda b: a + b
# 这时返回的实际上是一个lambda表达式
bc = func(3)
print(bc)
# 打印返回的bc对象,实际上是一个匿名函数
# <function func.<locals>.<lambda> at 0x000002ACCDF9EF70>
# 经过func(3)的调用,lambda表达式中a的值就是3,这时返回的表达式应该是lambda b:3+b
print(bc(8))
# 再调用bc(8),实际上表达式中的b就变成了8,表达式应该是lambda b:3+b,也就是3+8=11
# 也可以将上面的表达式整合为一个lambda表达式
lambda a:lambda b:a+b
# 使用map()函数计算平方
# def定义一个函数用于计算平方数
def sequere(x):
return x ** 2
list_1 = list(map(sequere, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
print(list_1)
# 使用lambda表达式代替sequere()函数
list_2 = list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
print(list_2)
联系客服