Проблема в том, что вы используете pop()
, который искажает список, но вы также перебираете список. Итак, допустим, что в списке есть элемент, который вы выделили. Теперь длина искаженного списка короче оригинала, но цикл for все равно будет пытаться выполнить итерацию до первоначальной длины списка, и это вызывает IndexError
.