相关疑难解决方法(0)

在列表中查找非公共元素

我正在尝试编写一段可以自动计算表达式的代码.例如,如果我有两个列表[1,2,3,4]和[2,3,5],代码应该能够找到两个列表中的公共元素,[2,3],并结合使用其余的元素在一个新的列表中,[1,4,5].

从这篇文章:如何找到列表交集? 我看到可以找到共同的元素

set([1,2,3,4]&set([2,3,5]). 
Run Code Online (Sandbox Code Playgroud)

有一种简单的方法可以从每个列表中检索非公共元素,在我的例子中是[1,4]和[5]吗?

我可以继续做一个for循环:

lists = [[1,2,3,4],[2,3,5]]
conCommon = []
common = [2,3]
for elem in lists:
    for elem in eachList:
    if elem not in common:
        nonCommon += elem
Run Code Online (Sandbox Code Playgroud)

但这似乎是多余和低效的.Python是否提供了可以做到的任何方便的功能?提前致谢!!

python algorithm list set discrete-mathematics

26
推荐指数
3
解决办法
4万
查看次数

查找不在两个列表的交集中的元素

所以我知道如何找到两个列表的交集:

>>> a = [1,2,3,4,5]
>>> b = [1,3,5,6]
>>> list(set(a) & set(b))
[1, 3, 5]
Run Code Online (Sandbox Code Playgroud)

但是找到交叉点中未包含的所有元素的最佳方法是什么.我最初的想法是创建两个列表的联合,然后从联合中删除交集中的所有元素,如下所示:

>>> 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]
Run Code Online (Sandbox Code Playgroud)

这是最好的方法吗?还是有另一种方式?

python

5
推荐指数
2
解决办法
5933
查看次数

标签 统计

python ×2

algorithm ×1

discrete-mathematics ×1

list ×1

set ×1