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這個值是沒有刪除的
因此,遍歷列表同時增減列表個數,需要先弄個列表副本,再遍歷副本,然後操作原列表
Python遍歷列表刪除多個列表元素
在遍歷list的時候,刪除符合條件的資料,結果不符合預期 num list 1,2,2,2,3 print num list for item in num list if item 2 num list.remove item else print item print num list 結果是 ...
Python遍歷列表刪除多個列表元素
在遍歷list的時候,刪除符合條件的資料,結果不符合預期 num list 1,2,2,2,3 print num list for item in num list if item 2 num list.remove item else print item print num list 結果是 ...
Python遍歷列表時刪除元素
本文首發於我的個人部落格suixin s blogpython的for迴圈可以遍歷乙個列表,但若需要同時將符合條件的元素刪除時,則會出錯。s 1 2,3 4,1 1 s1 s for i in s1 if i 1 s1.remove i print s1 輸出 2,3,4,1 另一種 s2 s fo...