作者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
1F:推 rofu:filter(None, l) 03/27 06:57
2F:→ Yawper:感谢一楼 的确可以达到想要的目的 不过可以解释一下吗? 03/27 09:35
3F:→ Yawper:为甚麽sequence的部份用l就可以只显示非零的物件呢? 03/27 09:36
4F:推 gasolin:l = [s for s in l if s!=0] 03/27 13:28
5F:→ Yawper:看到四楼顿时恍然大悟 简单直观XD 03/27 13:35