首页 > 解决方案 > 如何从向量的末尾开始一个 for 循环,并在值 0 处执行某些操作

问题描述

我必须开始将向量从其末端循环到零。当我遇到值 0 时,我需要将其替换为三个预览值的总和。例外情况是遇到第一个零,我只需要将前两个值相加即可。

例如

v = [0, 5, 5, 0, 6, 6, 0, 7, 7 ]

预期结果:

v = [36, 5, 5, 26, 6, 6, 14, 7, 7 ]

代码

for i in range(len(v), 0):       
    if v == 0 :
        v[i] = v[i+1] + v[i+2] + v[i+3]

代码不起作用。我哪里错了?

标签: pythonarraysloopsfor-loop

解决方案


您可以使用sum(v[i+1:i+4]). 您必须比较每个元素 ( if v[i] == 0) 而不是整个列表。

v = [0, 5, 5, 0, 6, 6, 0, 7, 7 ]

for i in range(len(v) - 1, -1, -1):       
    if v[i] == 0 :
        v[i] = sum(v[i+1:i+4])
print(v)

推荐阅读