Python列表推导式:简洁高效的数据处理利器
列表推导式(List Comprehension)是Python中优雅且高效的数据处理工具,它能将复杂的循环和条件逻辑压缩为一行代码,显著提升代码可读性和执行效率。
基础语法
[expression for item in iterable if condition]
- expression:对元素的处理表达式
- item:可迭代对象中的元素
- condition:可选过滤条件
经典用例
数值转换
squares = [x**2 for x in range(10)] # [0, 1, 4, 9, ..., 81]
条件过滤
even_nums = [x for x in range(20) if x % 2 == 0] # 所有偶数
嵌套循环
pairs = [(x, y) for x in 'ABC' for y in [1, 2]] # [('A',1), ('A',2), ('B',1), ...]
进阶技巧
- 字典推导式
square_dict = { x: x**2 for x in range(5)} # {0:0, 1:1, 2:4, ...}
- 集合推导式
unique_lengths = { len(word) for word in ['hello', 'world', '!']} # {5, 1}
性能优势
列表推导式比普通for
循环快约20%(实测10万次迭代),因Python解释器对其进行了专门优化。
注意事项
避免在推导式中执行复杂操作或嵌套过深,这会降低可读性。当逻辑复杂时,建议拆解为多行代码或使用生成器表达式(替换方括号为圆括号)。
本文代码测试环境:Python 3.10
掌握推导式,让你的数据处理代码更加Pythonic!