我在Python中有以下嵌套字典:
{'data1':{'IOU':{'B':0.1,'G':0.3},
'lines':{'B':{'accuracy':0.3, "recall":0.3},'G':{'accuracy':0.1, "recall":0.6}}},
'data2':{'IOU':{'B':0.2,'G':0.8},
'lines':{'B':{'accuracy':0.5, "recall":0.3},'G':{'accuracy':0.9, "recall":0.5}}}}
从这里我想创建一个像这样的新字典:
{'lines':{'B':{'accuracy':0.4, 'recall': 0.3}, 'G':{'accuracy':0.5, "recall":0.55}}}}
我基本上想为'lines'键获得一个嵌套字典,以便:
- 新密钥为B和G
- 新值为平均值每个键(B和G)和每个度量(准确率和召回率)的值
我正在努力与此,谁能建议如何编码?
你可以在你的输入字典(我们叫它d_in
)上使用字典理解:
letters = ["B", "G"]
metrics = ["accuracy", "recall"]
result = {
"lines": {
letter: {
metric: (
sum(data["lines"][letter][metric] for data in d_in.values()) / len(d_in)
)
for metric in metrics
}
for letter in letters
}
}