Ваша первая проблема заключается в том, что вы используете сумму ключей, а не значения:
total = sum(d.values())
Теперь вы можете просто изменить встроенный словарь, вместо того, чтобы поместить его в новый список:
for key in d.keys():
d[key] /= total # or d[key] = d[key] / total
Мой предыдущий код проходит через каждый ключ, извлекает значение, затем делится на сумму и, наконец, сохраняет его обратно в d[key]
.
Если вы хотите, чтобы новый словарь был возвращен, вместо простого изменения существующего, вы можете просто начать с e = d.copy()
, а затем использовать e
.