Python 列表推导式

Python 列表推导式是一种简洁、高效的创建列表的方法,可以用一行代码替代多行的 for 循环和 if 判断。

基本语法

```python

表达式 for 变量 in 可迭代对象 if 条件

```

· 表达式:对每个元素进行的操作,可以是变量本身,也可以是函数或运算。

· for 变量 in 可迭代对象:循环取元素。

· if 条件(可选):仅保留满足条件的元素。

示例

  1. 生成平方数列表

```python

squares = [x**2 for x in range(10)]

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

```

  1. 带条件过滤:只保留偶数

```python

evens = [x for x in range(20) if x % 2 == 0]

[0, 2, 4, ..., 18]

```

  1. 嵌套循环:生成坐标对

```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)]

```

  1. 对元素进行运算并过滤

```python

result = [x*2 for x in range(10) if x > 5]

[12, 14, 16, 18]

```

优点

· 代码更紧凑:避免多行循环和临时列表。

· 执行速度快:底层由 C 实现,比普通 for 循环更快。

· 可读性好(当表达式简单时)。

注意事项

· 避免过度复杂(嵌套三层以上或表达式过长),以免降低可读性。复杂逻辑建议用普通循环。

· 列表推导式会一次性生成整个列表,如果数据量极大且只需逐个取值,考虑使用生成器表达式(小括号 ())。

需要更具体的例子或比较吗?

相关推荐
测试19987 小时前
软件测试 - 单元测试总结
自动化测试·软件测试·python·测试工具·职场和发展·单元测试·测试用例
曲幽10 小时前
我用了FastApiAdmin后,连夜把踩过的坑都整理出来了
redis·python·postgresql·vue3·fastapi·web·sqlalchemy·admin·fastapiadmin
前端若水11 小时前
会话管理:创建、切换、删除对话历史
前端·人工智能·python·react.js
涛声依旧-底层原理研究所12 小时前
残差连接与层归一化通俗易懂的详解
人工智能·python·神经网络·transformer
csdn_aspnet12 小时前
Python 算法快闪 LeetCode 编号 70 - 爬楼梯
python·算法·leetcode·职场和发展
fantasy_arch13 小时前
pytorch人脸匹配模型
人工智能·pytorch·python
熊猫_豆豆13 小时前
广义相对论水星近日点进动完整详细数学推导
python·天体·广义相对论
web3.088899913 小时前
1688 图搜接口(item_search_img / 拍立淘) 接入方法
开发语言·python
AI算法沐枫13 小时前
深度学习python代码处理科研测序数据
数据结构·人工智能·python·深度学习·决策树·机器学习·线性回归