我有一个清单
a = ["a", "b", "c", "d", "e"]
我想在如下所示的for循环中删除此列表中的元素:
for item in a: print item a.remove(item)
但这是行不通的。我能做什么?
使用for循环遍历列表时,不允许从列表中删除元素。
for
重写代码的最佳方法取决于你要执行的操作。
例如,你的代码等效于:
for item in a: print item a[:] = []
另外,你可以使用while循环:
while a: print a.pop(0)
我正在尝试删除符合条件的项目。然后我转到下一个项目。
你可以将每个不符合条件的元素复制到第二个列表中:
result = [] for item in a: if condition is False: result.append(item) a = result
或者,你可以使用filter或列表推导并将结果分配回a:
a = filter(lambda item:... , a)
要么
a = [item for item in a if ...]
其中…代表你需要检查的条件。