nums =[1,2,3,4]
nums.remove(5) 运行错误
使用时候需要判断一下
if5in nums:
nums.remove(5)#删除所有指定的元素
nums =[(1,2),(2,3),(1,3),(1,4)]for num in nums:if num[0]==1:
nums.remove(num)
预期结果
[(2,3)]
实际运行结果
[(2,3),(1,4)]# 原因
当删除一项的时候,list会紧缩
nums 删除(1,2)后
nums =[(2,3),(1,3),(1,4)]
下一次num的值为(1,3) 跳过了(2,3)
同理,当删除完(1,3) 跳过了(1,4)导致没有遍历到
以上代码相当于,每次回到for循环,i+1,但是nums发生了变化
for i inrange(len(nums)):
num = nums[i]if num[0]==1:
nums.remove(num)
可以使用
for i inrange(len(nums)):
num = nums[i]if nums[0]==1:
nums.remove(num)
i -=1
或者,只有不删除的时候i+1
i =0while i <len(nums):
num = nums[i]if num[0]==1:
nums.remove(num)else:
i+=1