合并列表中的Dicts计算Python中的min,max和average

时间:2014-11-07 07:28:10

标签: python json dictionary data-analysis

我试着写一个魔兽世界拍卖行分析工具 对于每次拍卖,我的数据如下:

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

我希望将所有具有相同价值的dicts组合在一起" item"所以我可以获得minBuy,avgBuy,maxBuy,minQuantity,avgQuantity,maxQantity以及特定项目的组合拍卖总和。

我怎么能达到这个目的?

我已经尝试在第二个dicts列表中编写它,但是最后和最大值都丢失了......

2 个答案:

答案 0 :(得分:1)

您可以尝试创建一个字典,其中键是项目ID,值是价格和数量元组的列表。

如果您想保留所有信息,您还可以创建一个字典,其中键是项目ID,值是与该ID对应的字典列表,并从那里通过生成器提取您想要的信息

答案 1 :(得分:1)

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())