Python3:从json格式将相等的元素添加到一起
我想把每辆车的数字加在一起,所以我得到了每个元素的总数(下面的数字与数据不符,只是一个例子): 法拉利:152455 沃尔沃:13515 斯柯达:1532 兰博:4366 雷诺:4262 玛莎拉蒂:2345 雷克萨斯:235 吉普车:124 萨博:15 我尝试过sum(),将它附加到新列表、集合和许多其他可能的解决方案中,但我无法正确地实现这一点。我正在寻找一个不仅适用于我的问题的通用解决方案,因此,如果我更改了数据集,从而更改了数字和车辆,它还需要对新数据起作用Python3:从json格式将相等的元素添加到一起,json,python-3.x,list,Json,Python 3.x,List,我想把每辆车的数字加在一起,所以我得到了每个元素的总数(下面的数字与数据不符,只是一个例子): 法拉利:152455 沃尔沃:13515 斯柯达:1532 兰博:4366 雷诺:4262 玛莎拉蒂:2345 雷克萨斯:235 吉普车:124 萨博:15 我尝试过sum(),将它附加到新列表、集合和许多其他可能的解决方案中,但我无法正确地实现这一点。我正在寻找一个不仅适用于我的问题的通用解决方案,因此,如果我更改了数据集,从而更改了数字和车辆,它还需要对新数据起作用 我正在使用Python3。您可
我正在使用Python3。您可以使用
defaultdict
。下面的代码遍历dict列表。然后取出一个随机的键值对,直到每个dict为空,并将结果相加
Data = [{'Ferrari': 51078}, {'Volvo': 83245, 'Ferrari': 70432, 'Skoda':
29264, 'Lambo': 862},
{'Ferrari': 306415, 'Jeep': 4025, 'Saab': 2708, 'Lexus': 161}, {'Fiat':
27583, 'Maserati': 11030, 'Renault': 3194, 'Volvo': 259, 'Skoda': 164},
{'Ferrari': 2313172, 'Renault': 2475},
{'Volvo': 198671}, {'Volvo': 15762}]
输出
from collections import defaultdict
data = [{'Ferrari': 51078},
{'Volvo': 83245, 'Ferrari': 70432, 'Skoda': 29264, 'Lambo': 862},
{'Ferrari': 306415, 'Jeep': 4025, 'Saab': 2708, 'Lexus': 161},
{'Fiat': 27583, 'Maserati': 11030, 'Renault': 3194, 'Volvo': 259, 'Skoda': 164},
{'Ferrari': 2313172, 'Renault': 2475},
{'Volvo': 198671},
{'Volvo': 15762}]
output = defaultdict(int)
for d in data:
while d:
k, v = d.popitem()
output[k] += v
print(output)
defaultdict(,{'Ferrari':2741097,
兰博:862,
斯柯达:29428,
“沃尔沃”:297937,
“雷克萨斯”:161,
“萨博”:2708,
吉普:4025,
“雷诺”:5669,
玛莎拉蒂:11030,
“菲亚特”:27583})
谢谢,它工作得非常好!起初,我对行k,v=d.popitem()
有点困惑,但现在我终于明白了这一点。
defaultdict(<class 'int'>, {'Ferrari': 2741097,
'Lambo': 862,
'Skoda': 29428,
'Volvo': 297937,
'Lexus': 161,
'Saab': 2708,
'Jeep': 4025,
'Renault': 5669,
'Maserati': 11030,
'Fiat': 27583})