python - 如何从向量的末尾开始一个 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]
代码不起作用。我哪里错了?
解决方案
您可以使用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)
推荐阅读
- c# - ASP.NET 应用程序运行时如何将数据保存在内存(会话)中?
- ios - 如果集合中只有 1 个元素,则 UICollectionView 不进入 cellForItemAt 方法
- azure - 将自定义 exe 上传到 Azure Devops 管道
- regex - 如何将多个正则表达式字符串合并为一个?
- css - 引导下拉菜单类的问题
- javascript - Gatsby-Redux:组件不会在状态更改时重新渲染
- eclipse - 在 Eclipse 中打开一个新的内部 Web 浏览器选项卡?
- if-statement - 如何使用 query() 在 googlesheets 中构建搜索表单?
- arrays - Swift 中最大的数组(整数)容量是多少?
- python - 在自包含文件夹中构建我的烧瓶应用程序