Python 列表推导式是一种简洁、高效的创建列表的方法,可以用一行代码替代多行的 for 循环和 if 判断。
基本语法
```python
表达式 for 变量 in 可迭代对象 if 条件
```
· 表达式:对每个元素进行的操作,可以是变量本身,也可以是函数或运算。
· for 变量 in 可迭代对象:循环取元素。
· if 条件(可选):仅保留满足条件的元素。
示例
- 生成平方数列表
```python
squares = [x**2 for x in range(10)]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
```
- 带条件过滤:只保留偶数
```python
evens = [x for x in range(20) if x % 2 == 0]
[0, 2, 4, ..., 18]
```
- 嵌套循环:生成坐标对
```python
pairs = [(x, y) for x in range(3) for y in range(2)]
[(0,0), (0,1), (1,0), (1,1), (2,0), (2,1)]
```
- 对元素进行运算并过滤
```python
result = [x*2 for x in range(10) if x > 5]
[12, 14, 16, 18]
```
优点
· 代码更紧凑:避免多行循环和临时列表。
· 执行速度快:底层由 C 实现,比普通 for 循环更快。
· 可读性好(当表达式简单时)。
注意事项
· 避免过度复杂(嵌套三层以上或表达式过长),以免降低可读性。复杂逻辑建议用普通循环。
· 列表推导式会一次性生成整个列表,如果数据量极大且只需逐个取值,考虑使用生成器表达式(小括号 ())。
需要更具体的例子或比较吗?