我有两个字典列表,我想根据键值找到每个字典的平均值。即我想匹配键并从字典列表中平均其值。
data = {'5649a533c95a8a0bc345d1fe': [{'1': 0.0}, {'2': 28652.343535112403}, {'3': 26505.012833437846}],
'5649a533c95a8a0bc345d20c': [{'1': 28652.343535112403}, {'2': 26505.012833437846}, {'3': 24518.570421292356}]}
我想匹配两个字典列表中的键,即 '1'
,然后计算其各自值的平均值。
例如,在上面的数据集中,我需要获取与键(即“1”)匹配的值 0.0
和 28652.343535112403
,然后对这些值求平均值。
预期结果为[{'1': 20000}, {'2': 230000}, {'3': 23000}]
我能够迭代字典,但之后我就迷失了。
这就是我尝试做的事情
for k, v in data.items():
for index, i in enumerate(v, start=1):
print(index, i[str(index)])
请帮忙。
最佳答案
尝试:
d = {}
for x in itertools.chain(data.values()):
for k,v in x.items():
if k in d:
d[k].append(v)
else:
d[k] = [v]
av = {}
for k,v in d.items():
av[k]=sum(v)/len(v)
print av
我得到了结果:
{'1': 14326.171767556201, '3': 25511.7916273651, '2': 27578.678184275122}
注意:根据您对数据的值,您无法得出平均值:
[{'1': 20000}, {'2': 230000}, {'3': 23000}]
关于python - 两个字典列表的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33840996/