列表中的反向索引

新手上路,请多包涵

对于列表 k1=[31.0, 72, 105.0, 581.5, 0, 0, 0],我想向反向列表中的第一个非零元素添加一个常量,例如 100。这就是我想要的:newk1=[0, 0, 0, 681.5, 105, 72, 31] 作为 Python 的初学者,我无法弄清楚。请你帮助我好吗。那是我的代码:

 k1=[31.0, 72, 105.0, 581.5, 0, 0, 0]
Inverselist=[]

for i in range(len(etack1)):
    Inverselist.append(etack1[-(i+1)])
    print("Inverselist", Inverselist)
newk1=Inverselist
run_once = 0
while run_once < 1:
    for j in  range(len(newk1)):
        if newk1[j-1]>0:
            newk1[j-1]=newk1[j-1]+100
            run_once = 1
            break
print("Newk1", newk1 )

原文由 rezzz 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 561
2 个回答

我认为你想得太多了:

首先,反转列表:

 inverselist = k1[::-1]

然后,替换第一个非零元素:

 for i, item in enumerate(inverselist):
    if item:
        inverselist[i] += 100
        break

原文由 Tim Pietzcker 发布,翻译遵循 CC BY-SA 3.0 许可协议

只是一个愚蠢的方式。修改列表而不是创建新列表。

 k1.reverse()
k1[list(map(bool, k1)).index(1)] += 100

原文由 Stefan Pochmann 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题