【发布时间】:2021-08-02 02:01:28
【问题描述】:
我的问题看起来有点奇怪和简单,但我找不到令人满意的答案。我想迭代一个列表,并从中删除元素。当删除后列表中只剩下一个元素时,就会出现问题:循环不会迭代最后一个元素,就像列表为空一样。
我正在使用 for .. in ..,如下例所示:
def test_remove(self):
"""Test to remove all values from a list."""
test = [4, 5]
[test.remove(i) for i in test]
print test
我得到以下输出:
[5]
这是否意味着像我在列表上所做的迭代不会在删除元素时动态调整列表的大小(使用 for i in range() 也会发生同样的事情)?或者只是因为我只是到达i = len,所以我不能更进一步?
我总是可以作弊并检查 len 何时等于 1,但我想了解是否有更漂亮的方法来做到这一点。
非常感谢。
【问题讨论】: