繁体   English   中英

我想按降序计算

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM