寻找最简单的方法来执行列表中常用词典的平均值
Looking for easiest way to perform average of common dictionaries in a list
我有一个字典列表,例如
list1 = [{'a':[10,2],'b':[20,4]}, {'a':[60,6],'b':[40,8]}]
正在尝试将最终输出设为
list1 = [{'a':[35,4],'b':[30,6]}]
我试图获取每个字典中每个键的值列表,并根据列表的长度对它们进行平均,然后放入新字典中。
不确定执行此操作的最佳/最 pythonic 方式。
非常感谢任何帮助。
有很多不同的方法可以做到这一点。一个简单的迭代每个键,每个内部索引,并计算存储到新字典的平均值:
from pprint import pprint
list1 = [
{'a': [10, 2], 'b': [20, 4]},
{'a': [60, 6], 'b': [40, 8]},
]
means = {}
for key in list1[0]:
key_means = []
means[key] = key_means
for index in range(len(list1[0][key])):
key_means.append(
sum(
ab_dict[key][index]
for ab_dict in list1
) / len(list1)
)
pprint(means)
此实现假定第一行中出现的键在所有其他行中统一表示。
我有一个字典列表,例如
list1 = [{'a':[10,2],'b':[20,4]}, {'a':[60,6],'b':[40,8]}]
正在尝试将最终输出设为
list1 = [{'a':[35,4],'b':[30,6]}]
我试图获取每个字典中每个键的值列表,并根据列表的长度对它们进行平均,然后放入新字典中。
不确定执行此操作的最佳/最 pythonic 方式。
非常感谢任何帮助。
有很多不同的方法可以做到这一点。一个简单的迭代每个键,每个内部索引,并计算存储到新字典的平均值:
from pprint import pprint
list1 = [
{'a': [10, 2], 'b': [20, 4]},
{'a': [60, 6], 'b': [40, 8]},
]
means = {}
for key in list1[0]:
key_means = []
means[key] = key_means
for index in range(len(list1[0][key])):
key_means.append(
sum(
ab_dict[key][index]
for ab_dict in list1
) / len(list1)
)
pprint(means)
此实现假定第一行中出现的键在所有其他行中统一表示。