尝试删除列表中的项目,没有成功。
>>> r = [1,2,3,4,5]
>>> for i in r:
if i<3:
del i
>>> print r
[1, 2, 3, 4, 5]
我什至尝试过滤它,
>>> def f(i):
True if i>2 else False
>>> print list(filter(f,r))
[]
我不明白为什么第一个不起作用。当我使用filter(function,iterable)
.
编辑:
看到下面保罗的评论,现在我不明白为什么会这样。
>>> for i in r:
if i<3:
r.remove(i)
>>> print r
[3, 4, 5]
迭代器问题不应该仍然存在吗,代码不应该最终只删除第一个元素(r[0]
)