因此,我知道如何通过以下操作找到两个列表的交集:
>>> 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]这是最好的办法吗?还是有别的办法?
发布于 2016-10-22 05:40:12
我通常更喜欢捷径:
set(a) ^ set(b)
{2, 4, 6}发布于 2016-10-22 04:56:09
对称差分?
>>> set(a).symmetric_difference(b)
{2, 4, 6}https://stackoverflow.com/questions/40185258
复制相似问题