我有一本字典。我想计算每个键和打印结果的平均值,以便结果显示关键和相关的平均值。以下代码计算平均值,但我不知道如何将密钥与平均值相关联。我想要的答案是Mean = {22:average1,23:average2,24:average3}。
mydict = {22: [1, 0, 0, 1], 23: [0, 1, 2, 1, 0], 24: [3, 3, 2, 1, 0]}
Mean =[float(sum(values)) / len(values) for key, values in
mydict.iteritems()]
答案 0 :(得分:5)
你走在正确的轨道上。你只需要字典理解而不是列表comp。
_dict = {22: [1, 0, 0, 1], 23: [0, 1, 2, 1, 0], 24: [3, 3, 2, 1, 0]}
mean = {key : float(sum(values)) / len(values) for key, values in _dict.iteritems()}
print(mean)
{22: 0.5, 23: 0.8, 24: 1.8}
注意:
.iteritems
已替换为python3中的.items
dict
用作变量名称,它会使内部类名称同名。答案 1 :(得分:4)
不要使用列表理解。使用字典理解来计算每个列表的平均值。您还可以from __future__ import division
避免使用float
:
>>> from __future__ import division
>>> d = {22: [1, 0, 0, 1], 23: [0, 1, 2, 1, 0], 24: [3, 3, 2, 1, 0]}
>>> mean = {k: sum(v) / len(v) for k, v in d.iteritems()}
>>> mean
{22: 0.5, 23: 0.8, 24: 1.8}
答案 2 :(得分:0)
Python 3.4及更高版本的更新
>>> from statistics import mean # Python 3.4+
>>> d = {22: [1, 0, 0, 1], 23: [0, 1, 2, 1, 0], 24: [3, 3, 2, 1, 0]}
>>> {k:mean(v) for k,v in d.items()}
{22: 0.5, 23: 0.8, 24: 1.8}
>>>