Python: IndexError: индекс списка выходит за пределы диапазона при удалении элементов из списка в цикле [дубликат]Python

Программы на Python
Anonymous
Python: IndexError: индекс списка выходит за пределы диапазона при удалении элементов из списка в цикле [дубликат]

Сообщение Anonymous »

Я пытаюсь отфильтровать список в Python, удалив все числа больше 20. Однако при запуске кода я получаю ошибку IndexError: индекс списка вне диапазона.
Мой код:

Код: Выделить всё

numbers = [10, 25, 30, 15, 40]

for i in range(len(numbers)):
if numbers[i] > 20:
numbers.pop(i)

print(numbers)
Ошибка:

IndexError: индекс списка выходит за пределы диапазона, если числа > 20:.
Что я пробовал:

Я пытался напечатать длину списка внутри цикла и заметил, что список становится короче, но цикл продолжается до исходной длины. Я не знаю, как исправить смещение индекса.
Как безопасно удалить элементы из списка во время его обхода?

Вернуться в «Python»