我提前为这个问题的基本性质道歉,但我真的可以使用不同的眼睛看看为什么我仍然得到IndexError: list index out of range
。
这是我的代码:
def longestRun(L):
counter=1
ii=0
counts=[1]
while ii<=max(range((len(L)))):
if L[ii] <= L[(ii+1)]:
counter+=1
ii+=1
else:
ii+=1
counts.append(counter)
counter=1
continue
counts.sort()
return counts[-1]
它应该计算整数列表的连续增加的最长条纹。我通过从while语句中减去1来实现它,但是它不会总是显示正确的答案,因为它不会通过整个列表。
以下是我的具体错误消息:
IndexError
Traceback (most recent call last)
<ipython-input-76-1b4664f2fb31> in <module>()
----> 1 longestRun(L)
C:\Users\james_000\Desktop\longestRun.py in longestRun(L)
4 counts=[1]
5 while ii<=max(range((len(L)))):
----> 6 if L[ii] <= L[(ii+1)]:
7 counter+=1
8 ii+=1
答案 0 :(得分:0)
你的while循环是while ii<=max(range((len(L)))):
,然后你的if语句访问L[ii+1]
,它运行在数组的末尾。
答案 1 :(得分:0)
这是一个简单的数学。让我们说L
的长度为10.这使得最后一个索引9. ii
最终可能为9,因此ii+1
将超出范围。