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

看板Python作者 (J'en ai marre!)時間17年前 (2008/03/26 21:43), 編輯推噓2(203)
留言5則, 3人參與, 最新討論串1/4 (看更多)
想請教一個for loop的問題 >>> l = [0.2, 0.3, 0.3, 0, 0, 0, 0, 0] >>> l [0.20000000000000001, 0.29999999999999999, 0.29999999999999999, 0, 0, 0, 0, 0] >>> for p in l: ... if p==0: ... l.remove(p) ... >>> l [0.20000000000000001, 0.29999999999999999, 0.29999999999999999, 0, 0] 為甚麼這個for loop只能remove掉三個0呢? 如果我想把這個list中所有等於0的object都移除的話要怎麼修改呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 165.123.212.197

03/27 06:57, , 1F
filter(None, l)
03/27 06:57, 1F

03/27 09:35, , 2F
感謝一樓 的確可以達到想要的目的 不過可以解釋一下嗎?
03/27 09:35, 2F

03/27 09:36, , 3F
為甚麼sequence的部份用l就可以只顯示非零的物件呢?
03/27 09:36, 3F

03/27 13:28, , 4F
l = [s for s in l if s!=0]
03/27 13:28, 4F

03/27 13:35, , 5F
看到四樓頓時恍然大悟 簡單直觀XD
03/27 13:35, 5F
文章代碼(AID): #17wiDxTE (Python)
討論串 (同標題文章)
以下文章回應了本文
1
1
17年前, 2008/03/27 02:11
完整討論串 (本文為第 1 之 4 篇):
3
4
17年前, 2008/03/27 09:51
1
1
17年前, 2008/03/27 08:32
1
1
17年前, 2008/03/27 02:11
2
5
17年前, 2008/03/26 21:43
文章代碼(AID): #17wiDxTE (Python)