Latest posts on Удаление из списка в цикле topichttps://python.su/forum/topic/234/2006-11-21T14:16:05+02:00Общий :: Python для экспертов :: Удаление из списка в цикле
2006-11-21T14:16:05+02:00slav0nic1658<br/>>>> lst=range(1,10)<br/>>>> for i in lst:<br/>… print i<br/>… lst.remove(i)<br/>… print lst<br/>…<br/>1<br/><br/>3<br/><br/>5<br/><br/>7<br/><br/>9<br/><br/>>>><br/>
Общий :: Python для экспертов :: Удаление из списка в цикле
2006-11-21T12:53:17+02:00jan2ary1654Да вот к этому решению я в конце концов и пришел.<br/>За ссылку спасибо, я искал заметку об этом в разделе о списках…
Общий :: Python для экспертов :: Удаление из списка в цикле
2006-11-21T12:39:45+02:00slivlen1651<blockquote><em>jan2ary</em><br/>Каково будет значение lst после его выполнения? А теперь попробуйте…<br/>У кого предположение совпало с опытом?</blockquote>У меня совпало. Изменять список по которому проходишь в цикле - плохая идея, котороя приходит в голову только, разве что, новичкам(Вообще надо внимательней читать доки. Там есть явное предостережение от ипользования таких конструкций). Если надо изменять этот список, то надо предварительно создать его копию, и в цикле менять именно ее.<br/><br/>Python 2.4.2 (#1, Feb 12 2006, 03:59:46)<br/> on linux2<br/>Type “help”, “copyright”, “credits” or “license” for more information.<br/>>>> import copy<br/>>>> l=range(0,10)<br/>>>> l<br/><br/>>>> lc=copy.copy(l)<br/>>>> for i in l:<br/>… lc.remove(i)<br/>…<br/>>>> lc<br/><br/>>>><br/><br/><br/><a href="http://www.python.org/doc/2.4/ref/for.html">http://www.python.org/doc/2.4/ref/for.html</a>
Общий :: Python для экспертов :: Удаление из списка в цикле
2006-11-21T11:18:57+02:00jan2ary1650Есть код:<br/>>>> lst=range(1,10)<br/>>>> lst<br/><br/>>>> for i in lst:<br/> lst.remove(i)<br/>Каково будет значение lst после его выполнения? А теперь попробуйте…<br/>У кого предположение совпало с опытом?<br/><br/>Для меня такое поведение не было интуитивно понятным. Интересно, сколько еще новичков на этом голову посушили? :)