我有一个清单
a = ["a", "b", "c", "d", "e"]
我想在 for 循环中删除此列表中的元素,如下所示:
for item in a:
print(item)
a.remove(item)
但它不起作用。我能做什么?
原文由 alwbtc 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一个清单
a = ["a", "b", "c", "d", "e"]
我想在 for 循环中删除此列表中的元素,如下所示:
for item in a:
print(item)
a.remove(item)
但它不起作用。我能做什么?
原文由 alwbtc 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答884 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
在使用
for
循环对其进行迭代时,不允许从列表中删除元素。重写代码的最佳方式取决于您要做什么。
例如,您的代码等效于:
或者,您可以使用
while
循环:您可以将与条件 不 匹配的每个元素复制到第二个列表中:
或者,您可以使用
filter
或列表理解并将结果分配回a
:要么
其中
...
代表您需要检查的条件。