1. Python Lambda函数基础解析
在Python中,lambda函数是一种创建匿名函数的快捷方式。与常规函数不同,lambda函数没有名称,通常用于需要函数对象的地方。其基本语法如下:
python复制lambda arguments: expression
这个简单结构包含三个关键部分:
lambda关键字- 参数列表(可以包含多个参数,用逗号分隔)
- 冒号后的单个表达式(注意不是语句)
重要提示:lambda函数只能包含一个表达式,不能包含复杂的逻辑块或多行语句。如果需要更复杂的功能,应该使用常规的def函数。
1.1 典型使用场景
lambda函数最常见的应用场景是作为高阶函数的参数。例如,在排序操作中:
python复制students = [
{'name': 'Alice', 'score': 90},
{'name': 'Bob', 'score': 85},
{'name': 'Charlie', 'score': 95}
]
# 按分数排序
sorted_students = sorted(students, key=lambda x: x['score'], reverse=True)
在这个例子中,lambda函数简洁地指定了排序的依据,避免了单独定义一个只使用一次的函数。
另一个典型场景是与map()、filter()等内置函数配合使用:
python复制numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, numbers)) # [1, 4, 9, 16, 25]
evens = list(filter(lambda x: x % 2 == 0, numbers)) # [2, 4]
1.2 与常规函数的对比
理解lambda函数与常规def函数的区别对于合理使用它们至关重要:
| 特性 | Lambda函数 | 常规def函数 |
|---|---|---|
| 名称 | 匿名 | 有名称 |
| 函数体 | 只能是单个表达式 | 可以包含多个语句和复杂逻辑 |
| 返回值 | 表达式结果自动返回 |
