Python 正在尝试获取运行列表的总和
逻辑:使用for循环读取列表并将其所有元素添加到一起,最后在列表中一起打印所有迭代值 输入Python 正在尝试获取运行列表的总和,python,python-3.x,loops,Python,Python 3.x,Loops,逻辑:使用for循环读取列表并将其所有元素添加到一起,最后在列表中一起打印所有迭代值 输入 lis=[1,1,1,1,1] ore=[] for t in lis: ore.append(sum(lis[0:lis.index(t)+1])) print(ore) [1, 1, 1, 1, 1] 输出 lis=[1,1,1,1,1] ore=[] for t in lis: ore.append(sum(lis[0:lis.index(t)+1]))
lis=[1,1,1,1,1]
ore=[]
for t in lis:
ore.append(sum(lis[0:lis.index(t)+1]))
print(ore)
[1, 1, 1, 1, 1]
输出
lis=[1,1,1,1,1]
ore=[]
for t in lis:
ore.append(sum(lis[0:lis.index(t)+1]))
print(ore)
[1, 1, 1, 1, 1]
预期的
[1,2,3,4,5]
我不知道为什么我会得到这样的输出,我也想知道这种输出的机制。
非常感谢您的帮助。您的输出错误,因为t代表lis中的一个项目,而不是当前索引 这是固定密码
lis=[1,1,1,1]
ore=[]
对于枚举(lis)中的i,t:
ore.append(总和(lis[0:i+1]))
印刷品(矿石)
输出:
[1, 2, 3, 4, 5]
:
ore.append(总和(lis[0:i+1]))
sum
,也是低效的。您知道在每次迭代中,总和仅随当前值而变化,因此:
s=0
对于lis中的t:
s+=t
ore.append(s)
您可以使用
numpy
库中的np.cumsum()
:
将numpy导入为np
np.cumsum(lis)
返回:一个numpy数组:
[1,2,3,4,5]
巴迪可以详细说明这个机制。关于什么机制?