Re: [問題] 奇怪的問題...

看板Python作者 (酷狗喵千代)時間17年前 (2008/03/27 10:11), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/4 (看更多)
※ 引述《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
文章代碼(AID): #17wm8u1u (Python)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 2 之 4 篇):
文章代碼(AID): #17wm8u1u (Python)