1. 程式人生 > >python 使用入的坑

python 使用入的坑

gpo 遍歷 追加 解決 簡單 col 變更 刪除 測試

如測試代碼,並沒有將li、li_ 的交集查詢出來

li=[1,2,3,4,5]
li_=[2,5,6,7,9]
for i in li_:
    if i in li:
        li_.remove(i)
print li_
# 輸出 [5, 6, 7, 9]

原因

for 遍歷列表時記錄的是元素的索引位置,如i=2符合條件,此時li 列表會將2元素刪除,則5元素的下標就變成了0,而此時for記錄的是遍歷下標為1的元素,所以就跳過了5

所以要避免在遍歷中對列表變更

最簡單的解決方法是將符合條件的元素追加到新列表中,如

new=[]
li=[1,2,3,4,5]
li_=[2,5,6,7,9]
for i in li_: if i in li: new.append(i) print new #輸出結果是:[2, 5]

python 使用入的坑