可以使用两个字典理解(字典的每一层一个)和一个生成器理解(对列表中每个内键的所有元素求和)。注意,这种方法假设每个元素的模式都是相同的:
data = [{'level1_1':{'level2_1': 1, 'level2_2': 2}, 'level1_2':{'level2_3': 3, 'level2_4': 4}},
{'level1_1':{'level2_1': 10, 'level2_2': 20}, 'level1_2':{'level2_3': 30, 'level2_4': 40}}]
result = {
key: {
inner_key: sum(entry[key][inner_key] for entry in data) / len(data)
for inner_key in value
}
for key, value in data[0].items()
}
print(result)
输出:
{'level1_1': {'level2_1': 5.5, 'level2_2': 11.0}, 'level1_2': {'level2_3': 16.5, 'level2_4': 22.0}}