作者Yawper (J'en ai marre!)
看板Python
標題[問題] 奇怪的問題...
時間Thu Mar 27 05:43:21 2008
想請教一個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
推 rofu:filter(None, l) 03/27 06:57
→ Yawper:感謝一樓 的確可以達到想要的目的 不過可以解釋一下嗎? 03/27 09:35
→ Yawper:為甚麼sequence的部份用l就可以只顯示非零的物件呢? 03/27 09:36
推 gasolin:l = [s for s in l if s!=0] 03/27 13:28
→ Yawper:看到四樓頓時恍然大悟 簡單直觀XD 03/27 13:35