Python 列表中多个字典合并重复项
data = [{'dates': 24, 'list_num': 1, 'rigist_num': 1, 'submit_num': 0, 'through_num': 0, 'loan_num': 0},
{'dates': 11, 'list_num': 1, 'rigist_num': 0, 'submit_num': 0, 'through_num': 0, 'loan_num': 0},
{'dates': 11, 'list_num': 1, 'rigist_num': 1, 'submit_num': 18, 'through_num': 1, 'loan_num': 10},
{'dates': '28', 'list_num': 1, 'rigist_num': 1, 'submit_num': 3, 'through_num': 1, 'loan_num': 0},
{'dates': '28', 'list_num': 1, 'rigist_num': 0, 'submit_num': 0, 'through_num': 0, 'loan_num': 0}]
info_dic = {}
for d in data:
if d['dates'] not in info_dic:
info_dic[d['dates']] = str(d['list_num']) +
',' + str(d['rigist_num']) +
',' + str(d['submit_num']) +
',' + str(d['through_num']) +
',' + str(d['loan_num'])
else:
list1 = info_dic[d['dates']].split(",")
info_dic[d['dates']] = str(int(list1[0]) + d['list_num']) +
',' + str(int(list1[1]) + d['rigist_num'])+
',' + str(int(list1[2]) + d['submit_num'])+
',' + str(int(list1[3]) + d['through_num'])+
',' + str(int(list1[4]) + d['loan_num'])
new_info = []
for n, v in info_dic.items():
list1 = v.split(",")
new_info.append({'dates': n,
'list_num': int(list1[0]),
'rigist_num': int(list1[1]),
'submit_num': int(list1[2]),
'through_num': int(list1[3]),
'loan_num': int(list1[4])})
for i in new_info:
print(i)
运行结果:
{'dates': 24, 'list_num': 1, 'rigist_num': 1, 'submit_num': 0, 'through_num': 0, 'loan_num': 0}
{'dates': 11, 'list_num': 2, 'rigist_num': 1, 'submit_num': 18, 'through_num': 1, 'loan_num': 10}
{'dates': '28', 'list_num': 2, 'rigist_num': 1, 'submit_num': 3, 'through_num': 1, 'loan_num': 0}
如有好的建议感谢留言