Это очень сложная проблема для объяснения. Я играл с методами списка Python, особенно с индексным объектом del
. Я хотел создать простой скрипт, который создавал бы список целых чисел от 1 до 100, а затем цикл for, который удалял бы нечетные числа из списка.
Вот сценарий, который я написал:
def main():
num = list(range(1,101))
print(num)
for i in range(0,101):
del num[i]
print(num)
main()
Кажется, это сработает? Я тоже так думал, пока не запустил.
Не знаю почему, но когда i
передавалось в индекс del num[i]
, само число удваивалось.
Когда я запустил его, я получил IndexError: list assignment index out of range
.
Когда я изменил параметры с range(0,101)
на range(0,10)
, я обнаружил, что он удалил все нечетные числа от 1 до 20.
Другими словами, i
в индексе удваивается, хотя этого не должно быть. Могу ли я получить некоторую информацию об этом?
range
, но, поскольку срезы являются указателями на базовый массив, он не работает так, как я ожидал. Виноват :) - person Filip Haglund   schedule 17.08.2015