2

私は次の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},
]
4

3 に答える 3