Удаление элементов списков одновременно с обходом этого списка - очень плохая идея. После первого же удаления список будет переиндексирован и "range" выйдет за пределы диапазона.
Но никто не мешает это сделать в обратном порядке: for i in reversed(range(len(lst))):
if lst > 99:
del lst
Тут штука такая... На примере СИ-подобных языков... var massiv = [123, 23, 567, 100, 99, 54];
for (var i = 0; i < massiv.length; i++) {
if (massiv > 99) {
massiv.splice(i,1);
i--;
}
} Когда вырезаем число большее чем 99, количество элементов массива уменьшается на один, поэтому шаг итерации цикла нужно так же уменьшить на один, иначе получится что встретив и удалив 123 счетчик собьется с толку, не будет соответствовать индексам оставшихся элементов и результат - вылет за границы массива
Но в Питоне такая схема почему-то не срабатывает. Но вполне работает такое решение lst = [123, 23, 567, 100, 99, 54]
c = 0
for i in range(len(lst)):
if lst[c] > 99:
del lst[c]
c -= 1
c += 1
print(lst) Всё, всё что больше 99 удалили, осталось только [23, 99, 54]