我试图迭代一个Python列表,并在完成一些任务后删除每个元素,但每次迭代后它都会跳转一个元素,我不知道为什么:
>>> simple_list = list(range(10))
>>> simple_list
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> for i in simple_list:
... print(i)
... simple_list.remove(i)
...
0
2
4
6
8
>>> simple_list
[1, 3, 5, 7, 9]
有谁知道为什么会这样吗?仅删除偶数元素,并且看起来循环不会穿过不均匀的元素。
最佳答案
好吧,当你迭代它时,你的列表正在缩小。如果您愿意,只需在迭代第一个元素时查看它即可。
while len(simple_list) > 0:
print(simple_list[0])
del simple_list[0]
关于python - 在Python中迭代列表和删除元素时的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51132277/