如何遍历多个词典以提取价值

时间:2018-12-15 13:03:26

标签: python dictionary

我是python的新手,我想解决这个问题。 我有很多产品唯一ID(例如5331008574423、5331118575423、5901008573323),每次在产品上进行交易时,都有两个与之相关的数字代表供应商(例如5GHF5、89YOUT,892HG)和交易ID(SPE4A718PE141,SME4A788PE147 ,SYE4B58PE333)

我想对每种产品的交易量进行计数。因此,我决定计算与每个产品ID关联的交易ID。

我为每个产品编号创建了一个字典

,然后将每个交易添加到相应的productid中 最后将所有productID字典附加到一个大词典中,这样我就可以遍历每个字典并获得每个productid的所有交易ID的计数。

我启动了字典

 ProductIDs ={}
 BigDictionary = {}

并像这样将每笔交易添加到字典中

ProductIDs[transaction_id] = suplier_id

我正在尝试做这样的事情

5331118575423: [89YOUT, SPE4A718PE141], [SME4A788PE147,892HG], [89YOUT,SPE4A718PML90]

,然后将上面的字典附加到BigDictionary

  BigDictionary.append(ProductIDs)

并遍历每个产品ID以获取所有transactionID的计数

        for productID, ProductTrans in BigDictionary:

在这一点上,我很棘手,有没有更好的方法来解决这个问题,又如何遍历每个productID并打印产品ID和交易ID计数?

1 个答案:

答案 0 :(得分:1)

您需要创建一个字典,该字典默认为每个元素的列表,例如{[], [], []... },并执行以下操作:

from collections import defaultdict
product_transactions = defaultdict(list)

此时,您可以添加具有以下供应商ID的交易:

product_transactions[product_id].append((transaction_id, supplier_id))

现在计算您可以做的每种产品的交易:

for product_id, transactions in product_transactions.items():
    print(len(transactions))