在Python里,lambda是一种能定义“小巧匿名函数”的关键字。它只能包含一个表达式,却能接收任意数量的参数,常常用于实现简短功能或搭配其他函数一起使用。本文将深入介绍lambda的语法和用途。
1. 基本语法与示例
声明一个lambda函数的形式为:
lambda 参数列表 : 表达式
表达式会被计算并返回结果。示例:
x = lambda a: a + 10
print(x(5))
# 输出: 15
上面x
是个匿名函数,接收一个参数a,并返回a+10
的结果。
2. 多参数lambda
lambda可同时接收多个参数:
x = lambda a, b: a * b
print(x(5, 6))
# 输出: 30
y = lambda a, b, c: a + b + c
print(y(5, 6, 2))
# 输出: 13
与普通函数不同的是,lambda只能写一条表达式,不能包含复杂逻辑。
3. 结合普通函数使用
lambda的优势在于可以把它当作匿名函数,搭配其他函数返回一个新的逻辑。例如:
def myfunc(n):
return lambda a: a * n
mydoubler = myfunc(2)
print(mydoubler(11)) # 输出: 22
mytripler = myfunc(3)
print(mytripler(11)) # 输出: 33
这里myfunc
返回了一个lambda,n
在定义时被捕获,在后续调用时不断使用。这样能灵活地动态生成不同功能的函数。
4. 适合快速或临时使用
如果你需要为某个列表做轻量级操作,比如在map
或filter
时,只需用一次函数,就可以直接写成lambda形式,而不用多写好几行def。
nums = [1, 2, 3, 4, 5]
result = list(map(lambda x: x**2, nums))
print(result)
# 输出: [1, 4, 9, 16, 25]
Tail Note
总之,lambda函数可以让你在一行里完成简短的逻辑定义,写起来更方便,但也要注意别让代码变得难懂。当匿名函数太复杂时,还是用普通函数更清晰。