【发布时间】:2021-01-16 08:08:07
【问题描述】:
我遇到了一个我无法弄清楚的简单问题。
我有一个保存在 json 文件中的对象列表。一旦转换成 Python,它们就会给我这样的东西:
data = [
{"id": 1, "value": 3},
{"id": 2, "value": 1},
{"id": 3, "value": 5},
{"id": 1, "value": 1},
{"id": 1, "value": 2},
{"id": 3, "value": 2},
{"id": 1, "value": 3}
]
我试图每个唯一的“id”只有一个对象/字典。换句话说,我试图获得以下结果:
[{"id": 1, "value": 9}, {"id": 2, "value": 1}, {"id": 3, "value": 7}]
显然,我可以做到这一点:
foo = list(set([item["id"] for item in data]))
newList = []
for i in foo:
bar = {"id": i, "value": 0}
for x in data:
if x['id'] == i:
bar['value'] += x['value']
newList.append(bar)
但是我担心这个三重嵌套循环可能会大大减慢处理大型数据集的过程。
我对@987654325@ 很熟悉,我在collection's Counters 上看到过这个问题,但这些对我来说不起作用。
任何想法如何获得所需的结果?
【问题讨论】:
标签: json python-3.x list