python,从列表中删除项目



我很困惑。当我运行以下代码时,我假设列表l以空结尾,但总是以一个剩余项目结尾,即:

l = [1,2,3]
for item in l: 
l.remove(item)

print(l) 

结果是[2]

但如果我再次运行相同的循环,列表最终会被清空

for item in l: 
l.remove(item)

print(l)

结果是[]

当然我做错了什么,但现在我得到的是非常烦人的。

如果有人能解释一下发生了什么事,我很感激

感谢

有一个简单的修复方法,只需执行

l = [1,2,3]
for item in list(l): 
l.remove(item)

print(l) 

你的方法不起作用的原因是你在列表上迭代,同时删除列表上的项目。但是,如果在l上使用list方法,则将列表的临时副本传递到for循环中,并对其进行迭代。删除项目时,"长度"将保持不变。

相关内容

  • 没有找到相关文章

最新更新