'IndexError: list index out of range in for loop

I write a code in python but I faced this error :

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

I write an if condition that if my list length is less than 3, break the for, but it does not work.

My Code :

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])

Why do I face this error?
Is it because my if-condition does not work?

In Addition, I'm sorry for writing mistakes in my question.



Solution 1:[1]

Your loop goes from 0 to len(a1)-2, while you should only go to len(a1)-3:

When you are working with i, let i go from 0 to len(a1)-1.
When you are working with i and i+1, let i go from 0 to len(a1)-2.
When you are working with i, i+1 and i+2 let i go from 0 to len(a1)-3.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Dominique