Вы не можете сделать это. Если вы изменяете размер списка в цикле for и изменяете его длину, вы не получите желаемого результата.
Скажем, вы можете удалить один элемент здесь в вашем списке размером size
. Так что внезапно lista[size-1]
не работает, но вы все равно попытаетесь получить к нему доступ.
Это твоя ошибка. диапазон определяется в начале вызова, он не обновляется после каждой итерации.
Как сказали mauve и Asier Ricardo Rafales Vila, решение - lista = [i for i in range(30) if i%3 != 0]
.