我想做兩個list_A, list_B 元素的確認
然後用 list_A.remove() 移除掉不在list_B
最後的目標是讓list_A, list_B 相同
我的程式碼如下
(python ver 3.6.6, MacOS, 用colab和jupyter notebook跑都是一樣的結果)
因為element被移動了,可是index並沒有跟著動直觀作法就在迴圈前面加一個list的copy(),修改它就好
作者:
germun (ger)
2018-12-26 00:39:00如果元素不重覆用set就好, 除非你只是想試試not in
1. not in沒用錯,2.remove也沒錯,問題是出在你正在迭代的list_A會在迴圈中被改變,這個應該要儘量避免不過推樓上,用set應該最方便
作者:
Yshuan (倚絃)
2018-12-26 09:07:00List known issue 很多語言都有這問題
在list_A.remove(element)之後把list A跟B都print出來就知道問題在哪了
感謝各位高手的回覆 我用一個新的list就OK了set的解法感覺更優雅了 ~ thanks a lot
補個set的作法,取交集就好set(list_A) & set(list_B)