代碼如下:
# 創建一個列表list list = [1,1,2,525,2,633663,6363,6,6,6,3,3,35,45,6,66,6,6,6,6,3] # 循環列表里的元素 for i in list: if i == 6: # 如果列表里的元素等於6,刪除該元素 list.remove(i) print(list)
運行結果:
[1, 1, 2, 525, 2, 633663, 6363, 3, 3, 35, 45, 66, 6, 6, 6, 3]
結果,列表符合條件的數據未刪除干凈
分析原因:
for循環中,i代表的是最開始就確定的列表里所有的元素,刪除一個元素后,列表里的元素位置發生改變,后一位元素自動補位,補位的這個元素就躲過了被刪除命運
解決方法:直接把符合我們要求的元素保存到新的表格里即可,不能同時遍歷和刪除列表的元素
如下代碼:
list = [1,1,2,525,2,633663,6363,6,6,6,3,3,35,45,6,66,6,6,6,6,3] list1=[] for i in list: # 如果元素不等於6,加入list1列表 if i != 6: list1.append(i) print(list1)
運行結果:
[1, 1, 2, 525, 2, 633663, 6363, 3, 3, 35, 45, 66, 3]