Среднее значение всех ключей во вложенном словаре
Есть словарь со вложенной структурой, необходимо найти среднее значение ключей a,b,c,d по ключу.
dict = {'one': {'a': 0.3, 'b': 0.4, 'c': 0.4, 'd': 0.2}, 'two': {'a': 0.2, 'b': 0.3, 'c': 0.5, 'd': 0.2}, ' three': {'a': 0.3, 'b': 0.2, 'c': 0.3, 'd': 0.3}, 'four': {'a': 0.1, 'b': 0.6, 'c': 0.5, 'd': 0.1}}
Что я хочу получить:
new_dict = {'one': 0,325, 'two': 0.3,' three': 0.275, 'four': 0.325}
Подскажите, как такое сделать? Я новичок, пытаюсь написать цикл, но выходит совсем не то.
Есть идея использовать mean(), но не понимаю как
new_dict = {idx: {key: mean(idx) for key, idx in j.items()} for idx, j in dict.items()}
Ответы (2 шт):
Автор решения: gil9red
→ Ссылка
d = {
'one': {'a': 0.3, 'b': 0.4, 'c': 0.4, 'd': 0.2},
'two': {'a': 0.2, 'b': 0.3, 'c': 0.5, 'd': 0.2},
' three': {'a': 0.3, 'b': 0.2, 'c': 0.3, 'd': 0.3},
'four': {'a': 0.1, 'b': 0.6, 'c': 0.5, 'd': 0.1}
}
new_d = dict()
for name, sub_dict in d.items():
values = sub_dict.values()
new_d[name] = sum(values) / len(values)
print(new_d)
# {'one': 0.325, 'two': 0.3, ' three': 0.275, 'four': 0.325}
С функцией mean:
from statistics import mean
new_d = {name: mean(sub_dict.values()) for name, sub_dict in d.items()}
print(new_d)
# {'one': 0.325, 'two': 0.3, ' three': 0.275, 'four': 0.325}
Автор решения: farkon00
→ Ссылка
new_dict = {}
for i, j in my_dict.items():
new_dict[i] = sum(j.values()) / len(j.values())
print(new_dict)
Вот готовый цикл