我正試圖找到一種方法來使用一個列表來篩選出另一個列表的元素。Python篩選2列表
有點像相交的語法,但正好相反
lst = [0,1,2,6]
secondlst = [0,1,2,3,4,5,6]
預期結果
[3,4,5]
我正試圖找到一種方法來使用一個列表來篩選出另一個列表的元素。Python篩選2列表
有點像相交的語法,但正好相反
lst = [0,1,2,6]
secondlst = [0,1,2,3,4,5,6]
預期結果
[3,4,5]
簡單的方法:
r = [v for v in secondlst if v not in lst]
或
list(set(secondlst).difference(lst))
簡單:
outcome = [x for x in secondlst if x not in lst]
更復雜,但是如果更快善堂大:
lstSet = set(lst)
outcome = [x for x in secondlst if x not in lstSet]
您可以使用`set`假設使用filter
filter(lambda x: x not in lst, secondlst)
的答案所有secondlst的項目都是獨一無二的,並且可以哈希在結果中的順序不需要保留 –
@gnibbler然而,對於那些大型數據集來說,'set'解決方案通常會更有效。不保持排序的 –