【发布时间】:2019-03-28 15:52:38
【问题描述】:
我正在处理库存管理之类的工作,我被困在某些条件下分类和添加重复项目。我的代码在下面,它的工作正常到数据在列表“print(c.data_dict)”中
import datetime
from itertools import groupby
from operator import itemgetter
class Supplier:
def __init__(self, name, address, email, contact_no):
self.name = name
self.address = address
self.email = email
self.contact_no = contact_no
class Product:
def __init__(self, name):
self.name = name
class Company(Supplier, Product):
data_dict = []
def purchase(self, supplier_obj, product_obj, qty, date):
self.data_dict.append({'supplier': supplier_obj.name, 'product': product_obj.name, 'qty': qty, 'date': date})
return self.data_dict
s1 = Supplier('Amazon', 'kalawad road', 'amazon@gmail.com', '987686')
s2 = Supplier('Flipkart', 'university road', 'flipkart@gmail.com', '657457')
s3 = Supplier('Alibaba', 'china town road', 'alibaba@qq.com', '365213')
p1 = Product('Laptop')
p2 = Product('printer')
p3 = Product('computer')
c = Company(None, None, None, None)
c.purchase(s1, p1, 10, '2019-10-10')
c.purchase(s1, p1, 10, '2019-10-10')
c.purchase(s1, p2, 20, '2018-11-11')
c.purchase(s1, p2, 30, '2018-12-12')
c.purchase(s1, p3, 40, '2016-10-10')
c.purchase(s2, p3, 10, '2019-11-11')
c.purchase(s2, p3, 11, '2019-11-11')
c.purchase(s3, p1, 6, '2019-03-04')
c.purchase(s3, p3, 9, '2019-02-02')
print(c.data_dict)
我得到包含喜欢的列表
[{'supplier': 'Amazon', 'product': 'Laptop', 'qty': 10, 'date': '2019-10-10'},
{'supplier': 'Amazon', 'product': 'Laptop', 'qty': 10, 'date': '2019-10- 10'},
{'supplier': 'Amazon', 'product': 'printer', 'qty': 20, 'date': '2018-11-11'},
{'supplier': 'Amazon', 'product': 'printer', 'qty': 30, 'date': '2018-12-12'},
{'supplier': 'Amazon', 'product': 'computer', 'qty': 40, 'date':'2016-10-10'},
{'supplier': 'Flipkart', 'product': 'computer', 'qty': 10,'date': '2019-11-11'},
{'supplier': 'Flipkart', 'product': 'computer', 'qty': 11, 'date': '2019-11-11'},
{'supplier': 'Alibaba', 'product': 'Laptop', 'qty': 6, 'date': '2019-03-04'},
{'supplier': 'Alibaba', 'product':'computer', 'qty': 9, 'date': '2019-02-02'}]
其中 Amazon、FLipkart 和 allibaba 是供应商名称,Laptop-Printer-Computer 是产品名称,qty 是数量和日期。
我正在尝试对上述列表进行排序,如果存在来自同一供应商的相同日期,则应添加数量。例如。在亚马逊——打印机的数量应该是 50 ,如输出所示。我该怎么做? 我已经尝试使用 itertool 和 operator 模块来完成它,但没有得到正确的输出。
我的预期输出是
sample output
Amazon
01-01-2019 laptop 10
02-02-1019 laptop 10
03-03-2019 printer 50
03-03-2019 computer 40
Flipkart
01-01-2019 computer 10
31-01-2019 computer 11
Alibaba
2019-03-04 laptop 6
2019-02-02 computer 6
【问题讨论】:
标签: python python-3.x python-2.7 dictionary inventory-management