2

我想知道如何获得两个列表之间的对称差异。

例如:

list1 = ['a','a','b','c','d']    
list2 = ['a','b','c','f']    
sym_dif = ['a', 'd', 'f']

集合不起作用,因为我在每个列表中都有同一个对象的多个实例。我试过浏览 Stackoverflow 和互联网,每个人都建议设置。也许对称差异不是我想要的?我只是在寻找仅出现在一个列表中或在一个列表中比另一个列表中出现更多的每个项目。

4

1 回答 1

3

您可以collections.Counter改用:

from collections import Counter
c1 = Counter(list1)
c2 = Counter(list2)
print(list((c1 - c2 | c2 - c1).elements()))

这输出:

['a', 'd', 'f']
于 2019-12-11T18:07:54.497 回答