私は次の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 を使用していますが、それは数量キーを合計するだけです。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},
]