【问题标题】:Modify item while iterating [duplicate]迭代时修改项目[重复]
【发布时间】:2017-12-11 12:57:52
【问题描述】:
a = [1, 2, 3, 4, 5]
for i in a:
   a.remove(i)
print(a)

结果:[2, 4]

我看了一篇关于在迭代时修改列表的帖子,然后我尝试了上面的代码,结果似乎有点混乱。
为什么这里的结果是[2, 4]?

【问题讨论】:

  • 您是否尝试过使用调试器进行单步调试?或者写出正在发生的事情。
  • 应该不仅仅是令人困惑。这是一件好事。迭代时不要修改集合。

标签: python list


【解决方案1】:

您无法修改正在迭代的集合。这样就可以了:

对于 lst[:] 中的元素: lst.remove(元素)

【讨论】:

    猜你喜欢
    • 2019-04-04
    • 1970-01-01
    • 1970-01-01
    • 2018-10-21
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    相关资源
    最近更新 更多