[英]i want get my count in descending order
我想以相反的顺序计算
这是我的代码
def get_products_most_sold(**kwargs):
code = kwargs['code']
sales_from = kwargs['from_date']
sales_to = kwargs['to_date']
times_sold = products_by_date_store(code, sales_from, sales_to)
products={}
barcodes=times_sold.keys()
for barcode in barcodes:
log.info(barcode)
product=Product.get_by_bacode_storecode(barcode,code)
if product is not None:
products[barcode]=product.json()
return_pr=lambda p: None if products.get(p) is None else products.get(p)
return_sn=lambda p: None if products.get(p) is None else Supplier.get_supplier_name(products.get(p)['supplier_code'],products.get(p)['store_code'])
pr = lambda p: {'product':return_pr(p),'count':times_sold.get(p),'supplier_name':return_sn(p)}
return [pr(item) for item in barcodes]
您可以使用sorted
功能。 并将key
参数指定为返回计数的函数。 使用reverse=True
参数进行降序排序。
return sorted([pr(item) for item in barcodes], key=lambda item: item['count'], reverse=True)
参考: python wiki 关于排序
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.