Форум сайта python.su
Есть код:
>>> lst=range(1,10)
>>> lst
>>> for i in lst:
lst.remove(i)
Каково будет значение lst после его выполнения? А теперь попробуйте…
У кого предположение совпало с опытом?
Для меня такое поведение не было интуитивно понятным. Интересно, сколько еще новичков на этом голову посушили? :)
Отредактировано (Ноя. 21, 2006 12:14:59)
Офлайн
jan2aryУ меня совпало. Изменять список по которому проходишь в цикле - плохая идея, котороя приходит в голову только, разве что, новичкам(Вообще надо внимательней читать доки. Там есть явное предостережение от ипользования таких конструкций). Если надо изменять этот список, то надо предварительно создать его копию, и в цикле менять именно ее.
Каково будет значение lst после его выполнения? А теперь попробуйте…
У кого предположение совпало с опытом?
Офлайн
Да вот к этому решению я в конце концов и пришел.
За ссылку спасибо, я искал заметку об этом в разделе о списках…
Офлайн
>>> lst=range(1,10)
>>> for i in lst:
… print i
… lst.remove(i)
… print lst
…
1
3
5
7
9
>>>
Офлайн