Это произошло из-за того, что вы перебирали массив (или список) до последнего индекса и одновременно изменяли его длину. Диапазон, который вы создали в начале l oop, ничего не знает об изменениях размера списка. Если вы решите управлять текущим индексом вручную, у вас будет способ избежать этого. Но это немного не pythoni c, так как выглядит изощренно.
Вы можете просто выполнить ту же задачу другим способом, чтобы избежать этой проблемы и использовать возможности Python. Например, вы можете использовать set для фильтрации всех дубликатов:
array = [2,2,3,5,2,5,6,2,4,8,3,36,8,2]
results = set(array)
print(result)
Но, как я указал в комментариях ниже, это, скорее всего, изменит порядок элементов в списке. B Если вам нужно удалить дубликаты, но оставить порядок без изменений, это определенно не лучший способ.
Или вы можете использовать другой список для хранения результатов:
array = [2,2,3,5,2,5,6,2,4,8,3,36,8,2]
results = []
for number in array:
if number not in results:
results.append(number)
print(results)