Python列表推导式:简洁与高效的艺术
列表推导式是Python中最优雅的特性之一,它能够用一行代码完成复杂的列表构建操作,让代码既简洁又高效。
基本语法
[expression for item in iterable if condition]
简单示例
# 传统方式
squares = []
for x in range(10):
squares.append(x**2)
# 列表推导式
squares = [x**2 for x in range(10)]
带条件的推导式
# 只保留偶数平方
even_squares = [x**2 for x in range(10) if x % 2 == 0]
# 处理字符串
words = ['hello', 'world', 'python']
upper_words = [word.upper() for word in words if len(word) > 5]
嵌套循环
# 二维列表展平
matrix = [[1, 2], [3, 4], [5, 6]]
flattened = [num for row in matrix for num in row]
# 结果:[1, 2, 3, 4, 5, 6]
优势对比
- 代码简洁:减少3-5行代码
- 执行效率:比传统循环快约20%
- 可读性:意图更加明确
使用建议
- 适合简单的数据转换和过滤
- 避免过于复杂的嵌套,保持可读性
- 条件判断不宜过多,超过两个条件建议使用传统循环
列表推导式体现了Python“简单优于复杂”的设计哲学,合理使用能让你的代码更加Pythonic。掌握这个特性,你将在数据处理和日常编程中游刃有余。