索引错误扫描列表

时间:2016-08-07 01:28:51

标签: python indexing

我提前为这个问题的基本性质道歉,但我真的可以使用不同的眼睛看看为什么我仍然得到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

2 个答案:

答案 0 :(得分:0)

你的while循环是while ii<=max(range((len(L)))):,然后你的if语句访问L[ii+1],它运行在数组的末尾。

答案 1 :(得分:0)

这是一个简单的数学。让我们说L的长度为10.这使得最后一个索引9. ii最终可能为9,因此ii+1将超出范围。