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