Day 12: Lambda 表达式
1. Lambda 表达式概述
lambda
表达式是 Python 中用于创建匿名函数的一种简便方式。与传统的使用 def
关键字定义函数不同,lambda
可以在一行内定义简单的函数。这种特性使得 lambda
成为提高代码简洁性和可读性的一个有效工具。
2. Lambda 表达式的基本语法
lambda arguments: expression
- arguments:输入参数,可以是多个,用逗号分隔。
- expression:一个表达式,计算并返回该表达式的结果。
3. Lambda 表达式示例
示例代码 1:基本用法
# 定义一个简单的lambda函数
add = lambda x, y: x + y
result = add(5, 3)
print(result) # 输出结果为 8
示例代码 2:与 filter()
函数结合使用
# 过滤出列表中的偶数
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers) # 输出结果为 [2, 4, 6]
示例代码 3:与 map()
函数结合使用
# 将列表中的每个数平方
squared_numbers = list(map(lambda x: x ** 2, numbers))
print(squared_numbers) # 输出结果为 [1, 4, 9, 16, 25, 36]
4. Lambda 表达式在排序中的应用
lambda
表达式常用于排序,尤其是复杂数据结构如列表中的字典。
示例代码 4:按字典项排序
data = [{'name': 'Alice', 'age': 25}, {'name': 'Bob', 'age': 20}, {'name': 'Charlie', 'age': 30}]
# 按年龄排序
sorted_data = sorted(data, key=lambda x: x['age'])
print(sorted_data) # 输出结果为 [{'name': 'Bob', 'age': 20}, {'name': 'Alice', 'age': 25}, {'name': 'Charlie', 'age': 30}]
5. Lambda 表达式的优缺点
优点 | 缺点 |
---|---|
语法简洁,易于书写 | 不适合复杂逻辑的函数 |
可以内联使用 | 可读性较差 |
适合短小的函数 | 调试困难 |
6. Lambda 表达式的应用场景
- 简单的数学计算:如加法、乘法。
- 数据处理:使用
filter()
,map()
,reduce()
等函数。 - 排序规则:在复杂数据结构中定义排序关键字。
- 事件处理:在 GUI 编程中,使用匿名函数处理事件。
7. 运行流程图
以下是一个简单的运行流程图,展示 lambda
表达式的执行流程,假设我们使用 filter()
函数过滤偶数。
+--------------------------+
| 开始 |
+--------------------------+
|
v
+--------------------------+
| 定义一个 list 叫 numbers |
+--------------------------+
|
v
+----------------------------+
| 使用 filter() 和 lambda |
+----------------------------+
|
v
+--------------------------+
| 检查每个元素是否为偶数 |
| (x % 2 == 0) |
+--------------------------+
|
v
+--------------------------+
| 生成新的包含偶数的 list |
+--------------------------+
|
v
+--------------------------+
| 打印结果 |
+--------------------------+
|
v
+--------------------------+
| 结束 |
+--------------------------+
8. 练习题
为了巩固对 lambda
表达式的理解,下面是几个练习题:
- 使用
lambda
和map()
函数,创建一个将列表中的每个数加 10 的新列表。 - 编写一个函数,接受一个字符串列表,使用
lambda
表达式过滤出长度大于 3 的字符串。 - 结合
sorted()
和lambda
,对包含元组的列表按第二个元素进行排序。
9. 总结
lambda
表达式在 Python 中为函数定义提供了一种简洁的方式。虽然 lambda
表达式可以提高代码的简洁性,但也不应过度使用,特别是在函数逻辑复杂的情况下。理解何时使用 lambda
是编写优秀 Python 代码的一个重要技能。
附加资源
怎么样今天的内容还满意吗?再次感谢观众老爷的观看。
最后,祝您早日实现财务自由,还请给个赞,谢谢!