gpt4 book ai didi

python - 如何在 python 中修复 "List Index out of range"?

转载 作者:行者123 更新时间:2023-12-03 19:19:32 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





python : list index out of range error while iteratively popping elements

(12 个回答)


1年前关闭。



#function description   
def getMoneySpent(keyboards, drives, b):
q = []
for i in range(len(keyboards)):
for j in range(len(drives)):
q.append(keyboards[i] + drives[j])
for m in range(len(q)):
if(q[m] > b):
q.remove(q[m])
else:
pass
if q is not None:
return max(q)
else:
return -1

错误信息是:
Traceback (most recent call last):
File "Solution.py", line 42, in <module>
moneySpent = getMoneySpent(keyboards, drives, b)
File "Solution.py", line 15, in getMoneySpent
if(q[m] > b):
IndexError: list index out of range

不断收到此错误消息。这是hackerrank中的一个问题,我将在下面链接以供任何想要进一步引用的人使用:

https://www.hackerrank.com/challenges/electronics-shop/problem

最佳答案

问题是q.remove(q[m]) ,您在迭代列表时从列表中删除项目。

一种解决方案是保存所有需要的m s 要在另一个列表中删除,并在循环完成后删除它们。

或者

您可以查看这些链接以获得更好的线索:

How to delete list items while iterating

Another link

你可以这样理解:

q[:] = [i for i in q if i <= b]

把这条线而不是你的 for 循环放在 q 上。

另请注意:
else:
pass

是多余的,可以去掉。

关于python - 如何在 python 中修复 "List Index out of range"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61885364/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com