python - 在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)]
我该怎么做?
谢谢
解决方案
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)]
>>>
推荐阅读
- python - Python在操作前确认删除
- javascript - 如何使用具有适当布局的 PHP while-loop 动态创建 Bootstrap 4 卡片
- javascript - 在 for 循环 JavaScript 中声明变量
- php - 将客人的“添加到购物车”替换为“登录或注册购买”Woocommerce
- ruby-on-rails - 无法将 Ruby on Rails 应用程序部署到 AWS,出现与“mini_racer”相关的错误
- python - 如何使用 django 传递 pk 并做出反应
- podman - 如何在阻止互联网的同时公开端口?
- php - 使用 Cookies 记住 PHP 页面上的用户选择
- c++ - C++派生类的参数化构造函数
- sql - 在 Oracle SQL 中比较同一列的数据