Python列表推导式:简洁与高效的艺术
列表推导式是Python中最优雅的特性之一,它允许你用一行代码完成原本需要多行才能实现的功能。
基本语法
[expression for item in iterable if condition]
简单示例
# 传统方式
squares = []
for i in range(10):
squares.append(i*i)
# 列表推导式
squares = [i*i for i in range(10)]
带条件的推导式
# 只保留偶数平方
even_squares = [i*i for i in range(10) if i % 2 == 0]
嵌套循环
# 二维列表展开
matrix = [[1,2,3], [4,5,6], [7,8,9]]
flattened = [num for row in matrix for num in row]
# 结果:[1,2,3,4,5,6,7,8,9]
优势与注意事项
- 代码更简洁、可读性更强
- 通常比普通循环执行更快
- 但过度复杂的推导式会降低可读性
- 记住:可读性优先于简洁性
列表推导式体现了Python“简单优于复杂”的设计哲学。掌握它,能让你的代码更加Pythonic!
进阶提示:Python还支持字典推导式、集合推导式和生成器表达式,用法类似但各有特点。
合理使用推导式,让你的代码既简洁又高效!