python-3.x - 字典的产品不能重复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
解决方案
我的方法是使用两个步骤:首先,获取总数,然后以您需要的格式生成输出。
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})
推荐阅读
- docker - 如何通过 docker autodiscover 使用自定义摄取管道
- python - 在 django 中管理空闲和忙碌的约会
- r - R for 循环随机森林
- python - 如何使用 pytesseract 从屏幕中提取单词
- reactjs - 使用 react js 和 AWS 的 Microsoft Outlook 身份验证
- django - 如何在 django 中获取“default =”值的登录用户 ID?
- aws-lambda - 通过 SQSEvent 将配置数据传递到 Lambda 触发器
- python - jupyter笔记本中的dask打印
- php - 如何将变量传递给 Laravel Echo 的存在通道以供其“here”方法使用?
- c - 11:14:警告:传递 'strcmp' 的参数 1 使指针从整数而不进行强制转换