在写pythonChallenge第13题时,在for循环中修改了本身进行迭代的列表,造成了与预期不符的结果。
先写结论:由于在遍历的过程中,删除了其中一个元素,导致后面的元素整体前移,故有个元素成了漏网之鱼。同样的,在遍历过程中,使用插入操作,也会导致类似的错误。这也就是问题里说的无法“跟踪”元素
Solution:
i = 0
while i < len(a):
if a[i] == 4:
del a[i]
else:
i += 1
来自知乎解答:为什么python中不建议在for循环中修改列表?
网友评论