python使用for循環遍歷刪除列表符合條件的數據有漏刪


代碼如下:

# 創建一個列表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]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM