python - 两个字典列表的平均值

标签 python dictionary

我有两个字典列表,我想根据键值找到每个字典的平均值。即我想匹配键并从字典列表中平均其值。

data = {'5649a533c95a8a0bc345d1fe': [{'1': 0.0}, {'2': 28652.343535112403}, {'3': 26505.012833437846}],
        '5649a533c95a8a0bc345d20c': [{'1': 28652.343535112403}, {'2': 26505.012833437846}, {'3': 24518.570421292356}]}

我想匹配两个字典列表中的键,即 '1',然后计算其各自值的平均值。

例如,在上面的数据集中,我需要获取与键(即“1”)匹配的值 0.028652.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/

相关文章:

python - 有没有办法更快地运行 OpenCV 的 SIFT?

python - pyparsing 定量不可交换

python - 需要遍历字典以找到字符串片段

python - PyCharm 不识别字典值类型

python - 将元组转换为字典

python - 测试新的 mercurial hooks 的简单、无痛的方法(正在进行中)

python - Itertools.product 中索引处的元素

python - key 错误 : "Unable to open object (object ' imgs' doesn't exist)"

java - 迭代映射并在每个结果上运行方法 - APEX

swift - 如何在 set 方法中快速呈现字典?