python - 从数组中删除重复项并将值相加 Python
问题描述
我有一个数组,存在于两列中。第一列是一个类别,第二列是一个值。例如下面的一个:
[category1, 12], [category2, 78], [category3, 8], [category2, 53], [category4, 894]
我正在尝试创建一个数组,其中每个类别只出现一次,并且每个类别的所有值都加起来。
我应该如何开始?
解决方案
您可以使用列表中的值创建defaultdict
并更新字典,如下所示:
from collections import defaultdict
l = [['category1', 12], ['category2', 78], ['category3', 8],
['category2', 53], ['category4', 894]]
d = defaultdict(int)
for cat, i in l:
d[cat] += i
print(d)
defaultdict(int,
{'category1': 12,
'category2': 131,
'category3': 8,
'category4': 894})
如果你想让它回到一个list
:
list(map(list, d.items()))
# [['category1', 12], ['category2', 131], ['category3', 8], ['category4', 894]]
推荐阅读
- javascript - Discord.js bot - 在设置中创建角色导致 RangeError
- macos - 我在 Macbook Pro 上只有 Firefox OverconstrainedError
- swift - 变量更改后更新屏幕上的文本 I Xcode Swift5
- r - tidyverse 中的分组事件链 ID
- cassandra - 如何在 Cassandra 主键中查找范围?
- amazon-web-services - Fargate 任务的环境变量设置
- php - 如何从供应商文件夹中正确设置配置路径?
- mongoose - Mongoose 聚合匹配字段值等于没有 $expr 的变量?
- node.js - 使用 saml2-js 库从 SAML 请求创建 SAML 响应
- algorithm - 从推荐中删除重复项