根據鍵在嵌套字典串列中獲取平均值的好方法是什么?
例如
[{'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}}]
預期答案
{'level1_1':{'level2_1': 5.5, 'level2_2': 11}, 'level1_2':{'level2_3': 16.5, 'level2_4': 22}}
uj5u.com熱心網友回復:
您可以使用兩個字典推導(每個字典層一個)和一個生成器推導(對每個內部鍵的串列中的所有元素求和)。請注意,此方法假定每個元素的架構是相同的:
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}}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/437558.html
