Python中的lambda匿名函数详解以及三种经典使用场景
在Python中,lambda函数是一种创建单行小函数的方式。它们没有名称,因此可以在需要一个函数但不需要给它命名时使用。
lambda函数的基本语法如下:
lambda arguments: expression
lambda函数可以接受任意数量的参数,但只能有一个表达式。这个表达式的结果就是该lambda函数的返回值。
下面是一些lambda函数的使用场景:
- 为sort()函数定制排序:
# 假设我们有一个列表,我们想根据列表中的第二个元素来进行排序
nums = [(1, 3), (2, 2), (0, 4), (10, 1)]
# 使用lambda函数作为sort函数的key参数
nums.sort(key=lambda x: x[1])
print(nums) # 输出: [(10, 1), (2, 2), (1, 3), (0, 4)]
- 创建一个函数工厂:
# 创建一个函数,该函数可以生成基于给定数字增加特定值的函数
def make_adder(add_to):
return lambda x: x + add_to
# 使用函数工厂创建一个新的函数
adder5 = make_adder(5)
print(adder5(1)) # 输出: 6
- 将lambda函数作为其他高阶函数的参数:
# 使用map函数将列表中的每个数字增加5
nums = [1, 2, 3, 4]
result = list(map(lambda x: x + 5, nums))
print(result) # 输出: [6, 7, 8, 9]
请注意,虽然lambda函数可以用于简化代码,但是如果你的函数变得太复杂,你可能最好重写为一个完整的函数。lambda函数的主要优点是它们可以在不需要额外函数名的情况下快速创建小型函数。
评论已关闭