在Python中合并Dicts计算最小值、最大值和平均值

2024-05-23 15:39:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着写一个魔兽世界拍卖行的分析工具。
对于每一次拍卖,我都有这样的数据:

{
 'timeLeftHash': 4, 
 'bid': 3345887, 
 'timestamp': 1415339912, 
 'auc': 1438188059, 
 'quantity': 1, 
 'id': 309774, 
 'ownerHash': 751, 
 'buy': 3717652, 
 'ownerRealmHash': 1, 
 'item': 35965
}

我想合并所有具有相同“item”值的dict,这样我就可以得到minBuy、avgBuy、maxBuy、minQuantity、avgQuantity、maxQantity和特定物品的组合拍卖总和。在

我该怎么办?在

我已经试着把它写在第二个dicts列表中,但是最小值和最大值都不见了。。。在


Tags: 工具数据id世界buyitemdicttimestamp
2条回答

您可以尝试制作一个字典,其中键是item ID,值是price和quantity的元组列表。在

如果您想保留所有信息,您还可以制作一个字典,其中键是项ID,值是与该ID对应的字典列表,并从中通过生成器提取所需的信息。在

data = [
    {'item': 35964, 'buy': 3717650, ...},
    {'item': 35965, 'buy': 3717652, ...},
...
]
by_item = {}
for d in data:
    by_item.setdefault(d['item'], []).append(d['buy'])
stats = dict((k, {'minBuy': min(v), 'maxBuy': max(v)})
             for k, v in by_item.iteritems())

相关问题 更多 >