IndexError: список индексов вне диапазона в цикле for - PullRequest
0 голосов
/ 06 июля 2018

я пишу код на 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])

Почему я столкнулся с этой ошибкой?мое условие if не работает?

В дополнении прошу прощения за ошибки в моем вопросе.

1 Ответ

0 голосов
/ 06 июля 2018

Ваш цикл идет от 0 до len(a1)-2, в то время как вы должны идти только к len(a1)-3:

Когда вы работаете с i, позвольте i перейти от 0 к len(a1)-1.
Когда вы работаете с i и i+1, позвольте i перейти от 0 к len(a1)-2.
Когда вы работаете с i, i+1 и i+2, пусть i переходит с 0 на len(a1)-3.

...