我可以使用以下代码生成列表[0, 2, 6, 12, 20, 30, 42, 56, 72, 90]:

x = []
y = 0
for i in range(2,21,2):
    x.append(y)
    y += i

但是,我不确定如何将其转换为以下形式的列表理解语法

[可迭代IF条件中的值的表达式]

推荐答案

你可以在理解中赋值给y,使用assignment expession,即使用:=:

y = 0
x = [y := y + i for i in range(0,20,2)]

或者,您可以利用这些是triangular numbers的两倍的事实,然后您不需要y(而是乘法):

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

Python相关问答推荐

手动为pandas中的列上色

根据多列和一些条件创建新列

每个组每第n行就有Pandas

有没有方法可以修复删除了换码字符的无效的SON记录?

使用LineConnection动画1D数据

Pandas 填充条件是另一列

如何在msgraph.GraphServiceClient上进行身份验证?

max_of_three使用First_select、second_select、

'discord.ext. commanders.cog没有属性监听器'

如何访问所有文件,例如环境变量

在vscode上使用Python虚拟环境时((env))

如何在Python中找到线性依赖mod 2

在两极中过滤

如何使用Numpy. stracards重新编写滚动和?

无论输入分辨率如何,稳定扩散管道始终输出512 * 512张图像

使用Python查找、替换和调整PDF中的图像'

在单次扫描中创建列表

Flash只从html表单中获取一个值

如何创建引用列表并分配值的Systemrame列

具有相同图例 colored颜色 和标签的堆叠子图