删除两个列表之间的重复项,同时在一个特定列表中保留重复项

时间:2017-03-19 10:18:13

标签: python python-2.7

我目前正在使用Python 2.7.13创建有关数据结构的程序,我发现很难完成它。有了这个,我想删除两个列表之间的所有重复项,同时在一个特定列表中保留重复元素,考虑到它与另一个列表不同。

为了说清楚,我将举一个例子, 假设:

输入:

    a= [1,2,2,5,6,6]
    b= [2,5,7,9]

预期产出:

    c= [7,9,1,6,6]

1 个答案:

答案 0 :(得分:2)

你可以从

开始
>>> set(a).intersection(set(b))
 {2, 5}

>>> set(a).union(set(b)) - set(a).intersection(set(b))  
 {1, 6, 7, 9}

我们假设您有一个名为common

的集合
common = list(set(a).union(set(b)) - set(a).intersection(set(b)))

然后你可以找到你的清单:

>>> [c for c in (a+b)  if c in common]
[1, 6, 6, 7, 9]