首页 > 解决方案 > 在Python中将元组列表与总和值合并

问题描述

我有 n 个元组列表,应该通过添加相同关键字的值来生成最终元组列表。

每个元组列表都有这种形式:

[('a1', 10), ('a2', 50), ('a3',5)]
[('s1', 10), ('a3', 50), ('s2',5)]

我必须生成一个元组列表,如下所示

[('a1',10),('a2',50), ('a3',55), ('s1',10), ('s2',5)]

然后我必须按降序排列并更频繁地提取 x 元素

如下

[('a3',55), ('a2',50), ('a1',10), ('s1',10), ('s2',5)] #order list in descending order

# extract the 3 most frequently
[('a3',55), ('a2',50), ('a1',10)]

我该怎么做?

谢谢

标签: pythonlisttuples

解决方案


from collections import Counter

lists = [
    [('a1', 10), ('a2', 50), ('a3',5)],
    [('s1', 10), ('a3', 50), ('s2',5)]
]


counter = sum(map(lambda l: Counter(dict(l)), lists), Counter())

print(counter.most_common(3))

输出:

[('a3', 55), ('a2', 50), ('a1', 10)]
>>>

推荐阅读