关于python:获取两个列表之间的交集

Get intersection between two lists

本问题已经有最佳答案,请猛点这里访问。

我想使两个列表相交(与否),并返回列表A中不在列表B中的元素。

例子:

1
2
3
4
>>> a = [1,2,3,4,5]
>>> b = [1,3,5,6]
>>> list(set(a) ????? set(b))
[2, 4]

您正在查找设置差异;-运算符将为您执行此操作:

1
list(set(a) - set(b))

如果使用set.difference()方法,则第二个操作数不需要是一个集合,它可以是任何一个可迭代的:

1
list(set(a).difference(b))

演示:

1
2
3
4
>>> a = [1,2,3,4,5]
>>> b = [1,3,5,6]
>>> list(set(a).difference(b))
[2, 4]

1
2
3
a = [1,2,3,4,5]
b = [1,3,5,6]
print list(set(a) - set(b))


像这样?

1
2
>>> list(set(a) - set(b))
[2, 4]