这个问题在这里已有答案:
我正在检查是否可以删除for循环中的列表项,并在下一次迭代之前仍然使用它,这就发生了。
items = ['1','2','3','4']
for i in items:
items.remove(i)
print(i)
结果:
1
3
我希望print语句失败,或者打印所有数字。我不理解for循环迭代足以理解结果。
发布于 2019-04-12 14:09:06
问题是,你正在迭代列表的同时删除项目,这与基础迭代机制混淆,这就是你看到奇怪行为的原因。以下是从您的代码中学习的经验:永远不要同时迭代和删除!但有一个例外 - 如果你向后迭代它实际上会工作:
items = ['1','2','3','4']
for i in reversed(items):
items.remove(i)
print(i)
4
3
2
1
https://stackoverflow.com/questions/-100006579
复制相似问题