我试图编写这个程序而不使用Counter.Write Python程序来组合python词典列表中的值。转到编辑器 样本数据:
[{'item': 'item1', 'amount': 400}, {'item': 'item2', 'amount': 300}, {'item': 'item1', 'amount': 750}]
**Expected Output: {'item1': 1150, 'item2': 300}**
到目前为止,这是我的代码。
a=[{'item': 'item1', 'amount': 400}, {'item': 'item2', 'amount': 300}, {'item': 'item1', 'amount': 750}]
cp={}
val=0
for d in a:
if d['item'] not in cp:
cp[d['item']]=d['amount']
print(cp)
我的输出:{'item1': 400, 'item2': 300}
如何合并' item1'的总数?是否有任何帮助?
答案 0 :(得分:2)
a=[{'item': 'item1', 'amount': 400}, {'item': 'item2', 'amount': 300}, {'item': 'item1', 'amount': 750}]
cp={}
val=0
for d in a:
if d['item'] not in cp:
cp[d['item']] = d['amount']
else:
cp[d['item']] += d['amount']
print(cp)
答案 1 :(得分:2)
这是一种方式:
from collections import defaultdict
lst = [{'item': 'item1', 'amount': 400},
{'item': 'item2', 'amount': 300},
{'item': 'item1', 'amount': 750}]
d = defaultdict(int)
for i in lst:
d[i['item']] += i['amount']
# defaultdict(<class 'int'>, {'item1': 1150, 'item2': 300})
答案 2 :(得分:0)
d = {}
for a_dict in all_my_dicts:
for key in a_dict:
d[key] = d.get(key,0)+a_dict[key]
我想也许
答案 3 :(得分:0)
您可以在此处使用defaultdict
。
from collections import defaultdict
for d in l:
data[d['item']] += d['amount']
Out[72]: defaultdict(int, {'item1': 1150, 'item2': 300})