为什么此for循环不迭代列表的所有元素?

时间:2018-10-31 19:32:57

标签: python loops for-loop iteration

def sub(z):
    return z - min(a)
a = input().split()
a = list(map(int,a))    
a = list(map(sub, a))
print("JustBeforeLoop",a)
for i in a:
    if i == 0:
        a.remove(i)
    else:
        pass
print("Just after loop",a)

输入为:5 4 4 2 2 8

就在循环打印之前:[3, 2, 2, 0, 0, 6]

仅在循环之后打印:[3, 2, 2, 0, 6]

为什么循环没有删除所有的零而不是一个?

通常是这样的代码:

a = [1,2,0,4,5,0]
for i in a:
    if i == 0:
        a.remove(i)
    else:
        pass

将输出给出为:[1,2,4,5]  删除所有零。为什么第一个代码不一样?

0 个答案:

没有答案