对于lz的问题,可以做一下实验,打印出来数组元素就一目了然了。
for num in nums:
if num<5:
print(num)
else:
print("it's"+str(num))
print("before remove",nums)
nums.remove(num)
print("after remove",nums)
>> result
1
3
it's5
before remove [1, 3, 5, 7, 9]
after remove [1, 3, 7, 9]
it's9
before remove [1, 3, 7, 9]
after remove [1, 3, 7]
在循环到num=5的时候,删除掉了num=5的元素,循环内部的循环变量为2,在下一次循环时,输入的数组为[1,3,7,9],此时的循环变量为3,也就是从第4个元素9算起,所以跳过了元素7.
最后,不建议在循环中直接修改可迭代对象。