IndexError:for循环中的列表索引超出范围

时间:2018-07-06 10:37:21

标签: python list loops for-loop indexing

我用python写了一个代码,但是我遇到了这个错误:

if a1[i] == a1[i+1] == a1[i+2]:
IndexError: list index out of range

我写了一个if条件,如果我的列表长度小于3,则打破for,但是它不起作用。

我的代码:

numb = int(input())
a1 = []
a2 = []
a = 0
a1 = [int(i) for i in input().split()]
for i in range(0, numb):
    a2.append("empty")


for i in range(0, len(a1)-2):
    if len(a1) < 3:
        break
    else:
        if a1[i] == a1[i+1] == a1[i+2]:
            a = a + 1
            a2[i] = a
            a2[i+1] = a
            a2[i+2] = a
            a1.remove(a1[i+2])
            a1.remove(a1[i+1])
            a1.remove(a1[i])

为什么我遇到此错误? 是我的条件不起作用吗?

对于Addision,我很抱歉在我的问题中写错了。

1 个答案:

答案 0 :(得分:0)

您的循环从0len(a1)-2,而您只应转到len(a1)-3

使用i时,让i0len(a1)-1
当您使用ii+1时,让i0len(a1)-2
当您使用ii+1i+2时,让i0len(a1)-3