У меня есть список из четырех цифр:Неожиданное поведение в зацикливание список
mylist=[3,5,67,4]
Я хочу, чтобы удалить все нечетные числа. Итак, я написал следующее:
for item in mylist:
if item%2==1:
mylist.remove(item)
Когда я печатаю mylist
, я получаю следующее:
[5,4]
Я не могу понять, почему это происходит. Тем не менее, когда я добавляю оператор печати после if
заявления я получить правильный ответ:
for item in mylist:
if item%2==1:
mylist.remove(item)
print mylist
что дает:
[4]
Что здесь происходит? Что мне не хватает?
Это распространенная ошибка, которая происходит, когда вы мутируете последовательность, итерации по ней. – mgilson
Конечно. Я не знаю, почему я этого не видел. Я получаю это сейчас. Кроме того, я согласен с тем, что это дублирующий вопрос и отметил его как таковой. – Fezter