Python 过滤两个列表

2 投票
4 回答
7493 浏览
提问于 2025-04-17 06:53

我想找到一种方法,用一个列表来筛选另一个列表中的元素。

有点像交集的用法,但正好相反。

lst = [0,1,2,6]

secondlst = [0,1,2,3,4,5,6]

期望的结果

[3,4,5]

4 个回答

2

你可以看看Python里的 set() 类型。

>>> lst = [0,1,2,6]
>>> secondlst = [0,1,2,3,4,5,6]
>>> set(lst).symmetric_difference(set(secondlst))
set([3, 4, 5])
3

你可以使用 filter

filter(lambda x: x not in lst, secondlst)
12

简单的方法:

r = [v for v in secondlst if v not in lst]

或者

list(set(secondlst).difference(lst))

撰写回答