列表联合与重复

kai*_*ilo 7 python

我需要在Python3中统一两个列表,其中可以存在重复项,并且对于其中一组,结果列表将在两个列表中包含尽可能多的最大值.示例可能会澄清它:

[1,2,2,5]( some operator)[2,5,5,5,9]=[1,2,2,5,5,5,9]
Run Code Online (Sandbox Code Playgroud)

想法?

int*_*jay 13

你可以使用这个collections.Counter类:

>>> from collections import Counter
>>> combined = Counter([1,2,2,5]) | Counter([2,5,5,5,9])
>>> list(combined.elements())
[1, 2, 2, 5, 5, 5, 9]
Run Code Online (Sandbox Code Playgroud)

它作为multiset(无序集合,每个元素可以多次出现).该|运营商为您提供了多集,其中的每个元素出现最多(apperances_in_counter1,appearances_in_counter2)时代的工会.

这个类是在Python 2.7和3.1中添加的.