我想做两个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)