我正试图找到一种方法来使用一个列表来筛选出另一个列表的元素。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'解决方案通常会更有效。不保持排序的 –