如何在不使用set()的情况下比较列表? Python3

时间:2016-10-21 16:34:21

标签: python-3.x

我想从2个列表中获取常用元素。 我不能将set()用于具有可重复对象的列表,因为这样做:

list1=set([5, 5, 5])
list2=set([5, 5])
list3=list1.intersection(list2)
print(list3) ---> {5}

感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

使用collections.Counter

from collections import Counter
list1 = [5,5,5,4]
list2 = [5,5,4,4]

result = Counter(list1) & Counter(list2) # & is intersection


>>> result
Counter({5: 2, 4: 1})
>>> list(result.elements())
[4, 5, 5]