Python 列表中多个字典合并重复项

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}

如有好的建议感谢留言

宇书

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值