num_list = [1, 2, 3, 4, 5]
print(num_list)
for item in num_list:
if item == 2 or item == 3 or item == 4 :
num_list.remove(item)
else:
print(item)
print(num_list)
运行结果:
[1, 2, 3, 4, 5]
1
[1, 3, 5]
过程如下:
下标为0,item 取值1,不符合条件,没有删除
下标为1,item 取值2,符合条件,删除元素,这时 列表变为 [1, 3, 4, 5]
下标为2,item 取值4,符合条件,删除元素,这时列表变为 [1, 3, 5]
下标为3,没有继续遍历下去了。3这个值是没有删除的
因此,遍历列表同时增减列表个数,需要先弄个列表副本,再遍历副本,然后操作原列表
125



被折叠的 条评论
为什么被折叠?



