为什么python中不建议在for循环中修改列表?

2017-02-07  本文已影响0人  W_I_S_E

在写pythonChallenge第13题时,在for循环中修改了本身进行迭代的列表,造成了与预期不符的结果。


先写结论:由于在遍历的过程中,删除了其中一个元素,导致后面的元素整体前移,故有个元素成了漏网之鱼。同样的,在遍历过程中,使用插入操作,也会导致类似的错误。这也就是问题里说的无法“跟踪”元素

Solution:

i = 0
while i < len(a):
    if a[i] == 4:
        del a[i]
    else:
        i += 1

来自知乎解答:为什么python中不建议在for循环中修改列表?

上一篇下一篇

猜你喜欢

热点阅读