代码语言:javascript复制
总结为:
1.去重id
2.通过去重id生成count值为空的dict
3.先循环目标数据,再循环去重后的dict 通过if判断,相同则相加,不同则跳过,这样就达到了dict相加的目的
# 怎么把列表中相同key的字典相加,也就是id的值加id的值,doc_count的值加doc_count的值
# 目标列表
l=[{'id': 5, 'doc_count': 129}, {'id': 1, 'doc_count': 3}, {'id': 1, 'doc_count': 64}]
#统计ID,将不同的id放入一个列表中
lid=[]
for i in l:
if i['id'] not in lid:
lid.append(i['id'])
#结果列表
lm=[]
#根据lid,生成结果列表
for i in lid:
lm.append({'id':i,'doc_count':0})
#相同id的doc_count数相加
for i in l:
for o in lm:
if i['id'] == o['id']:
o['doc_count']=o['doc_count'] i['doc_count']
print(lm)