如何平均字典列表?

Ang*_*Man 0 python

考虑一个字典列表

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)

iBu*_*Bug 5

您想要首先聚合所有字典中的所有项目,然后计算每个键的平均值:

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)