@petrushik

Ошибка IndexError: list index out of range?

Почему в данном скрипте вылетает ошибка IndexError: list index out of range?

import numpy as np
dummy = [1, 1, 5, 6, 7, 9, 4, 4, 2]
x = 1

for j in range(len(dummy)):
if dummy[j] == dummy[j+1]:
dummy[j] = 0

print(dummy)
  • Вопрос задан
  • 202 просмотра
Решения вопроса 1
@MaratPetrov96
Здравствуйте!

Всё очень просто! Когда цикл доходит до последнего числа, равного 8, то есть индексу последнего элемента, вы велите коду проверить

dummy[8] == dummy[9]

Но элемента с индексом 9 не существует, вот и IndexError.

Кроме того, вы видимо, забыли, сделать dummy numpy массивом, иначе зачем было импортировать numpy?

А вместо range(len()) лучше использовать enumerate

import numpy as np
dummy = np.array([1, 1, 5, 6, 7, 9, 4, 4, 2])
x = 1

for n,j in enumerate(dummy[:-1]):
	if dummy[n] == dummy[n+1]:
		dummy[j] = 0

print(dummy)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы