Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 查找不在两个列表相交处的元素_Python - Fatal编程技术网

Python 查找不在两个列表相交处的元素

Python 查找不在两个列表相交处的元素,python,Python,因此,我知道如何通过以下操作找到两个列表的交集: >>> a = [1,2,3,4,5] >>> b = [1,3,5,6] >>> list(set(a) & set(b)) [1, 3, 5] 但是,找到未包含在交点中的所有元素的最佳方法是什么。我最初的想法是创建两个列表的并集,然后从并集的交点中删除所有元素,如下所示: >>> a = [1,2,3,4,5] >>> b = [1,3,5,6

因此,我知道如何通过以下操作找到两个列表的交集:

>>> a = [1,2,3,4,5]
>>> b = [1,3,5,6]
>>> list(set(a) & set(b))
[1, 3, 5]
但是,找到未包含在交点中的所有元素的最佳方法是什么。我最初的想法是创建两个列表的并集,然后从并集的交点中删除所有元素,如下所示:

>>> a = [1,2,3,4,5]
>>> b = [1,3,5,6]
>>> intersection = list(set(a) & set(b))
>>> union = list(set(a) | set(b))
>>> non_intersection = intersection - union
[2, 4, 6]
这是最好的方法还是有其他方法?

对称差异

>>> set(a).symmetric_difference(b)
{2, 4, 6}

我通常喜欢捷径:

set(a) ^ set(b)
{2, 4, 6}

你要找的是对称差分。集合有一个方法。尝试谷歌搜索。要补充BrenBarn所说的内容,请使用
^
而不是
&
。文档中介绍了这一点。它位于“pythonset方法”下。你怎么没有在搜索中找到它?
symmetric\u difference
接受任何iterable,因此不需要第二次调用
set
.ty!这是选择该方法而非快捷方式的另一个原因。出于兴趣,“^”的想法是什么?