Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 正在尝试获取运行列表的总和_Python_Python 3.x_Loops - Fatal编程技术网

Python 正在尝试获取运行列表的总和

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

逻辑:使用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]))
    

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]
  • 迭代两个索引和一个列表项的正确方法是使用,而不是在事后尝试查找索引;这很慢,当列表中有重复的元素(如您所发现的)时会失败

    枚举(lis)中的i,t的
    :
    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]

    巴迪可以详细说明这个机制。关于什么机制?