首页 > 解决方案 > 在 Python3 中删除列表中的项目作为 for 循环 - 奇怪的行为

问题描述

lst = [1,2,3,4,5]
def rem_items(lst):
    for i in lst:
        print(lst)
        time.sleep(1)
        lst.remove(i)


rem_items(lst)

返回

[1, 2, 3, 4, 5]
[2, 3, 4, 5]
[2, 4, 5]

我可以理解前两行,但为什么它删除了 3 而不是 2?
为什么它在删除 3 而不是 2、4、5 后停止?

提前致谢

标签: pythonpython-3.xfor-loop

解决方案


您在迭代列表时正在修改列表。这通常是一件坏事,并且可能导致不可预测的结果。

有关更多信息,请参见此处: 在迭代时修改列表


推荐阅读