Re: [問題] 奇怪的問題...
※ 引述《Yawper (J'en ai marre!)》之銘言:
: 想請教一個for loop的問題
: [0.20000000000000001, 0.29999999999999999, 0.29999999999999999, 0, 0, 0, 0, 0]
: ... if p==0:
: ... l.remove(p)
: ...
: [0.20000000000000001, 0.29999999999999999, 0.29999999999999999, 0, 0]
: 為甚麼這個for loop只能remove掉三個0呢?
: 如果我想把這個list中所有等於0的object都移除的話要怎麼修改呢?
: 謝謝
會有 element 被跳過:
>>> a = range(10)
>>> for p in a:
... if p%2:
... a.remove(p)
... print a
... else:
... print a.index(p)
...
0
[0, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 2, 4, 5, 6, 7, 8, 9]
[0, 2, 4, 6, 7, 8, 9]
[0, 2, 4, 6, 8, 9]
[0, 2, 4, 6, 8]
如上,2, 4, 6, 8 都沒有被 iterate 到。
結論,不要在 for 裡面刪被 iterate container 的元素。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 164.107.248.238
推
03/27 13:34, , 1F
03/27 13:34, 1F
討論串 (同標題文章)
Python 近期熱門文章
PTT數位生活區 即時熱門文章