You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将生成指定列表的循环代码转换为Python列表推导式?

解决方法

原循环的核心逻辑是生成一个累加序列:初始值为0,之后依次累加2、4、6…直到18(最后一次循环中,先append累加后的结果90,再加上20,循环结束),最终得到列表0, 2, 6, 12, 20, 30, 42, 56, 72, 90。

方法一:利用数学公式简化

观察列表元素的规律:

  • 第1个元素:0 = 0 × 1
  • 第2个元素:2 = 1 × 2
  • 第3个元素:6 = 2 × 3
  • ...
  • 第10个元素:90 = 9 × 10

可见每个元素都是n × (n+1),其中n从0到9。直接用列表推导式实现:

x = [n * (n + 1) for n in range(10)]

方法二:用海象运算符模拟累加过程(Python 3.8+)

如果不想依赖数学规律,也可以用海象运算符在列表推导式中维护累加状态,完全模拟原循环逻辑:

y = 0
x = [temp for i in range(2, 21, 2) if (temp := y, y := y + i)[0] or True]

这里的逻辑是:每次循环先把当前的y赋值给temp(要append的元素),再更新y的值,最后返回temp作为列表元素。

验证结果

两种方法运行后都能得到目标列表:[0, 2, 6, 12, 20, 30, 42, 56, 72, 90]

内容的提问来源于stack exchange,提问作者AColoredReptile

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 07:27:28