gpt4 book ai didi

python - python中给定键的所有字典中具有匹配值的平均值

转载 作者:太空狗 更新时间:2023-10-30 02:24:33 27 4
gpt4 key购买 nike

我有一个字典列表,它们都具有相同的键。

in_list = [{'index':1, 'value':2.}, {'index':1, 'value':3.}, {'index':2, 'value':4.}]

我想创建一个新词典,其中包含每个 'index''value' 平均值。

out_dict = {1:2.5, 2:4.}

执行此操作的最 pythonic 方法是什么?


下面的代码做了我想要的,但我觉得它很笨拙

tmp = {x:[] for x in range(1,3)}
for el in in_list:
tmp[el['index']].append(el['value'])

for key, val in tmp.iteritems():
out_dict[key] = sum(val)/len(val)

最佳答案

你的代码很好,但你可以让它更紧凑一点。正如 Transhuman 的回答所示,您可以通过将 tmp 设为列表的 defaultdict 来避免初始化它。另一种方法是使用 dict.setdefault方法。然后使用 dict comprehension计算平均值。

in_list = [
{'index':1, 'value':2.},
{'index':1, 'value':3.},
{'index':2, 'value':4.}
]

out_dict = {}
for d in in_list:
out_dict.setdefault(d['index'], []).append(d['value'])
out_dict = {k: sum(v) / len(v) for k, v in out_dict.items()}
print(out_dict)

输出

{1: 2.5, 2: 4.0}

关于python - python中给定键的所有字典中具有匹配值的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52687300/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com