为什么我会收到此错误?
arr[i+1]+=arr[i]-k
IndexError: list index out of range
for i in range(0,n):
if arr[i]>=k:
t+=1
arr[i+1]+=arr[i]-k
答案 0 :(得分:2)
在没有程序目标的情况下给出解决方案,而又看不到k,n的数组,值,但最后一行是arr[i+1]+=arr[i]-k
。
对于循环的最后一次迭代,arr[i+1]
将不存在。我也是初学者,如果不能帮忙,请对不起。
答案 1 :(得分:1)
因为到达最后一项时,您要求它取数组中的下一个元素并分配一个值(如果最后一项之后没有元素)。因此请尝试更改arr[i+1]
使其更合适。
答案 2 :(得分:1)
我将假设n
是列表的长度。如果n
是列表的长度,则arr[i+1]
超出范围。
示例:
for i in range(0,n-1): # <-- change here
if arr[i] >= k:
t += 1
arr[i+1] += arr[i] - k
答案 3 :(得分:0)
尽管没有足够的代码来有效地回答问题,但变量n的值很可能大于arr的大小,并且当它超过arr的大小时,会给出循环第一行的错误检查条件的主体。
for i in range(0,n): # <- try decreasing the value of n
print("check") # <- or put a print here to ckeck where exactally the error is
if arr[i] >= k:
t += 1
arr[i+1] += arr[i] - k