在 Python 中,lambda
表达式是一种创建匿名函数的方式。匿名函数是指没有名字的函数,通常用于需要一个简单函数的场合。lambda
表达式可以在一行代码中定义一个简单的函数,语法简洁明了。
基本语法
lambda arguments: expression
arguments
:函数的参数,可以有多个,用逗号分隔。expression
:一个表达式,计算结果就是这个匿名函数的返回值。
示例
1. 基本用法
# 定义一个简单的 lambda 函数,计算两个数的和
add = lambda x, y: x + y
print(add(2, 3)) # 输出 5
2. 在函数中使用 lambda
def make_incrementor(n):return lambda x: x + nincrement_by_2 = make_incrementor(2)
print(increment_by_2(5)) # 输出 7
3. 在列表排序中使用 lambda
# 按照元组的第二个元素排序
pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
pairs.sort(key=lambda pair: pair[1])
print(pairs) # 输出 [(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]
4. 在 map()
函数中使用 lambda
# 将列表中的每个元素平方
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x ** 2, numbers))
print(squared) # 输出 [1, 4, 9, 16, 25]
5. 在 filter()
函数中使用 lambda
# 过滤出列表中的偶数
numbers = [1, 2, 3, 4, 5, 6]
evens = list(filter(lambda x: x % 2 == 0, numbers))
print(evens) # 输出 [2, 4, 6]
6. 在 reduce()
函数中使用 lambda
from functools import reduce# 计算列表元素的累积和
numbers = [1, 2, 3, 4, 5]
result = reduce(lambda x, y: x + y, numbers)
print(result) # 输出 15
注意事项
- 简洁性:
lambda
表达式适用于定义简单的、一次性的函数。如果函数逻辑较为复杂,建议使用def
关键字定义命名函数,以提高代码的可读性。 - 单一表达式:
lambda
表达式只能包含一个表达式,不能包含多条语句或复杂的控制流。 - 可读性:虽然
lambda
表达式可以使代码更简洁,但过度使用可能会降低代码的可读性,尤其是对于不熟悉lambda
表达式的开发者。