如何在python字典列表中按值分组?



[{'A': '1', 'P': '3253'},{'A': '2', 'P': '3127'},{'A': '1', 'P': '3056'}]

打印A值的唯一编号对于每个唯一的一个值,的平均值是多少?P(按A值分组)输出应为:

[('A':'1', 'P':'3154.5'},{'A': '2', 'P': '3127'}]

首先收集所有相似键来计算平均值:

LoD=[{'A': '1', 'P': '3253'},{'A': '2', 'P': '3127'},{'A': '1', 'P': '3056'}]
out={}
for d in LoD:
k=('A', d['A'])
out.setdefault(k, []).append(float(d['P']))

然后将其重新格式化为具有平均值的字典列表:

newLoD=[{t[0]:t[1], 'P':str(sum(sl)/len(sl))} for t,sl in out.items()]  
>>> newLoD
[{'A': '1', 'P': '3154.5'}, {'A': '2', 'P': '3127.0'}] 

相关内容

  • 没有找到相关文章

最新更新