为什么index out of range

for i in range(len(nums)):
    if nums[i] == 2:
        nums.pop(i)

nums =[0,1,2,2,3,0,4,2]

为什么out of range

len(nums) = 8
然后for 循环从0开始
会得到i=0一直到7
nums[i]就会是nums中的每一个数
我到底哪里理解错了
谢谢指点

pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。
你在循环过程中改变了list的长度,但是len(nums)只会计算一次,已经确定了, 所以越界了

nums是可变对象,在满足条件nums[i] == 2的时候nums本身发生了改变,长度变小了的,
你再用索引取值肯定会报错,可以打印nums看看