#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
保存在另一个列表中,并在循环完成后删除它们或
您可以查看这些链接以获得更好的线索:
How to delete list items while iterating
Another link
你可以理解这一点:
将这条线而不是for循环放在q上
还请注意:
是多余的,可以删除
您可以尝试以下方法:
与其删除元素,不如先不添加它们
相关问题 更多 >
编程相关推荐