首页 > 解决方案 > 在列表中查找不在其他列表中的值

问题描述

让我们来看看这些示例列表:

L_main = [1,2,3,4,5,6,7,8,9]
L1 = [1,7,3,12]
L2 = [0,2,51,5,9]
L3 = [3,2,8]

我想创建一个列表,其中包含 L_main 的值,这些值既不在 L1 中,也不在 L2 中,也不在 L3 中。下面的代码完成了这项工作,但是对于大列表来说真的很慢:

[i for i in L_main if i not in L1 and i not in L2 and i not in L3]

你知道请一个更有效的方法吗?
预期结果 :

[4,6]

标签: pythonlist

解决方案


您可以使用串联在一起的列表之间的set差异L_main和其余列表:

>>> list(set(L_main).difference(L1+L2+L3))
[4, 6]

推荐阅读