collection.Counter可以使用Python 2.7中提供的功能来实现完全按照您想要的方式进行的多集。
a = [3,4,5,5,5,6]b = [1,3,4,4,5,5,6,7]a_multiset = collections.Counter(a)b_multiset = collections.Counter(b)overlap = list((a_multiset & b_multiset).elements())a_remainder = list((a_multiset - b_multiset).elements())b_remainder = list((b_multiset - a_multiset).elements())print overlap, a_remainder, b_remainder



