看板 Python 關於我們 聯絡資訊
想請教一個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