Python 中的列表推导式详解
列表推导式(List Comprehension)是 Python 提供的一种简洁而优雅的生成列表的方式。它能够在一行代码中完成循环与条件判断,使代码更加直观和易读。本文将从基础到进阶,带你全面了解列表推导式的用法。
- 基本语法
列表推导式的基本语法为:
[表达式 for 变量 in 可迭代对象 if 条件]
• 表达式:生成列表中每个元素的计算方式。
• for 变量 in 可迭代对象:类似于常规的 for 循环,指定迭代的对象。
• if 条件(可选):筛选满足条件的元素。
- 示例代码
- 简单生成列表
生成一个包含 0-9 的列表
numbers = [x for x in range(10)]
print(numbers) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
2. 添加条件筛选
生成一个仅包含偶数的列表
even_numbers = [x for x in range(10) if x % 2 == 0]
print(even_numbers) # [0, 2, 4, 6, 8]
3. 嵌套循环
生成一个二维坐标列表
coordinates = [(x, y) for x in range(3) for y in range(3)]
print(coordinates) # [(0, 0), (0, 1), …, (2, 2)]
4. 嵌套条件
筛选 x+y 为偶数的坐标
filtered_coordinates = [(x, y) for x in range(3) for y in range(3) if (x + y) % 2 == 0]
print(filtered_coordinates) # [(0, 0), (0, 2), (1, 1), (2, 0), (2, 2)]
- 注意事项
• 列表推导式适合简单的逻辑场景,复杂逻辑应使用常规循环实现。
• 对于嵌套推导式,建议分步拆解代码以提高可读性。
总结
列表推导式是 Python 编程的一项利器,通过它可以写出简洁、高效的代码。但在追求简洁的同时,也要注意代码的可读性和复杂性。掌握列表推导式,你的 Python 技能将更上一层楼