在列表中查找不在其他列表中的值
让我们以这些示例列表为例:
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]
我想创建一个列表,其中包含既不在 L1 中,也不在 L2 中,也不在 L3 中的 L_main 值。下面的代码完成了这项工作,但是对于大列表来说真的很慢:
[i for i in L_main if i not in L1 and i not in L2 and i not in L3]
你知道更有效的方法吗?
预期结果 :
[4,6]
回答
您可以使用连接在一起的列表和其余列表set之间的差异L_main:
>>> list(set(L_main).difference(L1+L2+L3))
[4, 6]