考虑一个字典列表
a = {(0,1) : 10, (2,9): 20}
b = {(0,1) : 20, (2,9): 60, (3,3): 15}
list_of_dicts = [a,b]
Run Code Online (Sandbox Code Playgroud)
c我怎样才能从中获得平均值
c = {(0,1) : 15, (2,9): 40, (3,3):15}
Run Code Online (Sandbox Code Playgroud)
一个相关的问题是Getaverage value from list ofdictionary,但该解决方案没有考虑 key (3,3)。
您想要首先聚合所有字典中的所有项目,然后计算每个键的平均值:
def average(l):
return sum(l) / len(l)
collected = {}
for d in list_of_dicts:
for key in d:
if key in collected:
collected[key].append(d[key])
else:
collected[key] = [d[key]]
# collected = {(0, 1): [10, 20], (2, 9): [20, 60], (3, 3): [15]}
for key in collected:
collected[key] = average(collected[key])
# collected = {(0, 1): 15.0, (2, 9): 40.0, (3, 3): 15.0}
Run Code Online (Sandbox Code Playgroud)