首页 > 解决方案 > 字典的产品不能重复odoo

问题描述

我正在拍摄当月销售的所有产品,并将其存储在字典列表中,如下所示:

a = [
    {'product_name':'coca-cola','qty':2},
    {'product_name':'pepsi','qty':2},
    {'product_name':'coca-cola','qty':1},
    {'product_name':'coca-cola','qty':1},
    {'product_name':'coca-cola1','qty':1},
    {'product_name':'pepsi','qty':2}
    ]

现在我试图让产品不重复,坦率地说,如果你重复产品,你应该简单地添加离开字典的数量,如下所示:

result =[{'product_name':'coca-cola','qty':4},{'product_id':'pepsi','qty':4},{'product_id':'coca-colca1','qty':1}]

到目前为止,我只尝试执行以下操作,但结果不合适:

b = []

for index  in range(0,len(a)-1):
    if  a[index]['product_name'] != a[index + 1 ]['product_name']:
        b.append(a[index])


print b

标签: python-3.xodoo

解决方案


我的方法是使用两个步骤:首先,获取总数,然后以您需要的格式生成输出。



    a = [
        {'product_name':'coca-cola','qty':2},
        {'product_name':'pepsi','qty':2},
        {'product_name':'coca-cola','qty':1},
        {'product_name':'coca-cola','qty':1},
        {'product_name':'coca-cola1','qty':1},
        {'product_name':'pepsi','qty':2}
        ]

    totals = {}
    for sale in a:
        if sale['product_name'] in totals.keys():
            totals[sale['product_name']] += sale['qty']
        else:
            totals[sale['product_name']] = sale['qty']

    b = []
    for product_name, qty in totals.items():
        b.append({'product_name':product_name, 'qty':qty})


推荐阅读