簡體   English   中英

查找不在兩個列表的交集中的元素

[英]Find elements NOT in the intersection of two lists

所以我知道如何找到兩個列表的交集:

>>> 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) ^ set(b)
{2, 4, 6}

對稱差異?

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM