可以轻松地计算字典列表吗?

时间:2020-06-11 09:55:39

标签: python list count

我有一个这样的字典列表:

def shCounter(orderList):
    try:
        orderCountList=[]
        orderList = [{'key': '130690 002_11', 'sku': '130690 002', 'size': '11', 'name': "Air Jordan 12 Retro 'Flu Game' 2016"}, {'key': '575441 030_6.5', 'sku': '575441 030', 'size': '6.5', 'name': "Air Jordan 1 Retro High OG GS 'Pine Green 2.0'",}, {'key': '575441 030_6.5', 'sku': '575441 030', 'size': '6.5', 'name': "Air Jordan 1 Retro High OG GS 'Pine Green 2.0'"}, {'key': '575441 030_7', 'sku': '575441 030', 'size': '7', 'name': "Air Jordan 1 Retro High OG GS 'Pine Green 2.0'"}, {'key': '575441 030_7', 'sku': '575441 030', 'size': '7', 'name': "Air Jordan 1 Retro High OG GS 'Pine Green 2.0'"}, {'key': '575441 030_7', 'sku': '575441 030', 'size': '7', 'name': "Air Jordan 1 Retro High OG GS 'Pine Green 2.0'"}, {'key': 'FW5190_6.5', 'sku': 'FW5190', 'size': '6.5', 'name': "Yeezy Boost 350 V2 'Yecheil Non-Reflective'"}, {'key': 'FW5190_6.5', 'sku': 'FW5190', 'size': '6.5', 'name': "Yeezy Boost 350 V2 'Yecheil Non-Reflective'"}]
        #print(orderList)
        for order in orderList:
            print(order["key"])
            orderCountList.append(order["key"])
            orderCountList.append(order["sku"])
            orderCountList.append(order["size"])
        print(orderCountList)
        orderCount={}
        for order in orderList:
            print(orderCountList.count(order["size"])
            #orderCount[order["key"]]

我想按sku和大小来计算所有产品,我发现了一个“计数”功能。但是,我不能直接算出该格。另外,我尝试将其更改为列表,它只计算相同SKU的总数或大小。

如何按大小按sku进行计数?

我的预期输出是这样的:

product A:  

6.5 : 2,
7 : 5,
8 : 1,
total : 8

product B: 

7 : 1,
9 : 2,
Total : 3

1 个答案:

答案 0 :(得分:1)

一种可能性是确定每个给定项目的大小,并更新orderList中每个项目的出现次数。像这样:

orderCounts = {}
for item in orderList:
    sku = item["sku"]
    if not sku in orderCounts:
         orderCounts[sku] = {}
    size = item["size"]
    if not size in orderCounts[sku]:
         orderCounts[sku][size] = 0
    orderCounts[sku][size] += 1
相关问题