我是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计数?
答案 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))