Python列表(list)使用for循环和list.remove删除列表元素的坑

Python列表(list)使用for循环和list.remove删除列表元素的坑

Talk is cheap show me the code

y=[1,1,2,1,2,1,2,1,1,1,2]
index = 0
for i in y:
    if i==1:
        print()
        y.remove(i)
    print(index,":","List_2=",y,"  i:",i)
    index += 1
print("List_2=",y)

首先我们先看一下运行结果:
Python列表(list)使用for循环和list.remove删除列表元素的坑_第1张图片
出现这个结果的原因是:for i in y中的i每次取值为y[index],当 i == 1时,y.remove()后,y列表的所有元素会自动前移一位。但index值不会重新开始。这里有一个细节需要注意,y.remove()并不算删除某一下标的元素,而是删除从左到右的第一个元素为1的值。因此会出现如下图所示的现象:

你可能感兴趣的:(Python,python)