python中将字典相同key处理不同的value,将value相加给相同的key

good_id =  [{'goods_id': 9, 'buy_num': 1.0}, {'goods_id': 8, 'buy_num': 8.0}, {'goods_id': 7, 'buy_num': 4.0}, {'goods_id': 9, 'buy_num': 1.0}, {'goods_id': 3, 'buy_num': 1.0}, {'goods_id': 2, 'buy_num': 1.0}, {'goods_id': 6, 'buy_num': 1.0}]
# reverse=False 默认升序,reverse=True降序
good_id.sort(key=lambda x: x["goods_id"],reverse=True)#对goods_id排序
print("good_id==",good_id)
from operator import itemgetter
from itertools import groupby
for id,va in groupby(good_id,key=itemgetter("goods_id")):
    data = {}
    sm = []
    key = None
    for i in va:
        key=i["goods_id"]#对goods_id相同的字段
        x = i["buy_num"]#对buy_num进行相加
        sm.append(x)

    data["goods_id"]=key
    data["buy_num"]=sum(sm)
    print("data===",data)

打印语句如下:

good_id== [{'goods_id': 9, 'buy_num': 1.0}, {'goods_id': 9, 'buy_num': 1.0}, {'goods_id': 8, 'buy_num': 8.0}, {'goods_id': 7, 'buy_num': 4.0}, {'goods_id': 6, 'buy_num': 1.0}, {'goods_id': 3, 'buy_num': 1.0}, {'goods_id': 2, 'buy_num': 1.0}]
data=== {'goods_id': 9, 'buy_num': 2.0}
data=== {'goods_id': 8, 'buy_num': 8.0}
data=== {'goods_id': 7, 'buy_num': 4.0}
data=== {'goods_id': 6, 'buy_num': 1.0}
data=== {'goods_id': 3, 'buy_num': 1.0}
data=== {'goods_id': 2, 'buy_num': 1.0}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值