在 Python 中,lambda 是一种创建匿名函数(没有名称的函数)的方法,通常用于实现一些简单的、一次性的操作。它特别适合与高阶函数(如 map
、filter
和 sorted
)结合使用。
lambda 的语法
lambda 参数: 表达式
- 参数:用逗号分隔的参数列表。
- 表达式:一个单行表达式,执行后会返回结果。
示例:lambda 的实际应用
1. 基础示例
add = lambda x, y: x + y
print(add(2, 3)) # 输出: 5
2. 与 map
配合
将列表中的每个元素平方:
numbers = [1, 2, 3, 4]
squared = map(lambda x: x**2, numbers)
print(list(squared)) # 输出: [1, 4, 9, 16]
3. 与 filter
配合
筛选出偶数:
numbers = [1, 2, 3, 4, 5]
even_numbers = filter(lambda x: x % 2 == 0, numbers)
print(list(even_numbers)) # 输出: [2, 4]
4. 与 sorted
配合
根据字典的键值排序:
data = [{'name': 'Alice', 'age': 25}, {'name': 'Bob', 'age': 22}]
sorted_data = sorted(data, key=lambda x: x['age'])
print(sorted_data)
# 输出: [{'name': 'Bob', 'age': 22}, {'name': 'Alice', 'age': 25}]
适用场景
- 用于简短的一次性函数。
- 简化代码,例如内联操作。
- 在函数式编程中作为参数传递给
map
、filter
和reduce
等高阶函数。
限制
- 只能包含单个表达式,无法书写多条语句或复杂逻辑。
- 可读性较差,过度使用会让代码变得难以理解。
如果逻辑较复杂,建议使用普通的 def
函数以提高代码可读性:
def add(x, y):
return x + y