如何使用for循环查找python字典中每个元素的平均值


comp_dict = {'ap': {'val': 0.3, 'count': 3}, 'sd': {'val': 0.02, 'count': 1}, 'ao': {'val': 0.01, 'count': 1}}
avg_rate = {}
for value in comp_dict.keys():
avg_rate[value] = comp_dict[value]['val']/comp_dict[value]['count']
print(avg_rate[value])

似乎我得到的输出只生成了我想要的最后一个元素的平均值,我想知道我怎么可能得到所有三个元素的平均值。

我现在得到的输出只是0.01

我想要的输出应该是{ap:0.1,sd:0.02,ao:0.01}

非常感谢!

您刚刚在打印avg_rate值时犯了一个小错误。

你可以这样做:

avg_rate = {}
for value in comp_dict.keys():
avg_rate[value] = comp_dict[value]['val']/comp_dict[value]['count']
print(avg_rate)

给定comp_dict = {'ap': {'val': 0.3, 'count': 3}, 'sd': {'val': 0.02, 'count': 1}, 'ao': {'val': 0.01, 'count': 1}}

输出为:

{'ap': 0.09999999999999999, 'sd': 0.02, 'ao': 0.01}

我想这行得通

avg_rate = {k:comp_dict[k]['val']/comp_dict[k]['count'] for k in comp_dict for k2 in comp_dict[k]}

最新更新