lambda-Python


在 Python 中,lambda 是一种创建匿名函数(没有名称的函数)的方法,通常用于实现一些简单的、一次性的操作。它特别适合与高阶函数(如 mapfiltersorted)结合使用。

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}]

适用场景

  1. 用于简短的一次性函数。
  2. 简化代码,例如内联操作。
  3. 在函数式编程中作为参数传递给 mapfilterreduce 等高阶函数。

限制

  1. 只能包含单个表达式,无法书写多条语句或复杂逻辑。
  2. 可读性较差,过度使用会让代码变得难以理解。

如果逻辑较复杂,建议使用普通的 def 函数以提高代码可读性:

def add(x, y):
    return x + y