我有以下 dict 结构。
product1 = {'product_tmpl_id': product_id,
'qty':product_uom_qty,
'price':price_unit,
'subtotal':price_subtotal,
'total':price_total,
}
然后是产品列表,列表中的每一项都是上面结构的dict
list_ = [product1,product2,product3,.....]
我需要对列表中的项目求和,按键分组product_tmpl_id
...我正在使用 dictcollections 但它只对 qty 键求和,我需要对键求和,除了product_tmpl_id
哪个是分组标准
c = defaultdict(float)
for d in list_:
c[d['product_tmpl_id']] += d['qty']
c = [{'product_id': id, 'qty': qty} for id, qty in c.items()]
我知道如何通过 for 迭代来做到这一点,但试图寻找一种更 Pythonic 的方式
谢谢
编辑:
需要的是从这里传递:
lst = [
{'Name': 'A', 'qty':100,'price':10},
{'Name': 'A', 'qty':100,'price':10},
{'Name': 'A', 'qty':100,'price':10},
{'Name': 'B', 'qty':100,'price':10},
{'Name': 'C', 'qty':100,'price':10},
{'Name': 'C', 'qty':100,'price':10},
]
对此
group_lst = [
{'Name': 'A', 'qty':300,'price':30},
{'Name': 'B', 'qty':100,'price':10},
{'Name': 'C', 'qty':200,'price':20},
]