在字典上计算平均值时出错

时间:2016-04-26 17:36:27

标签: python dictionary iterable

假设我们有一本字典:

mapping = {1: 22.5, 8: 13.4, 10: 12.1}

然后计算平均值我使用以下内容:

[(sum(v) / len(v)) for k, v in mapping.items()]

我收到错误:

TypeError: 'float' object is not iterable

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

您正在尝试计算一个值的总和:

[(sum(v) / len(v)) for k, v in mapping.items()]

v是字典中的单个float对象。它没有长度,也无法加总。

您希望对所有值求和,并在此处取字典的长度:

sum(mapping.values()) / len(mapping)

演示:

>>> mapping = {1: 22.5, 8: 13.4, 10: 12.1}
>>> sum(mapping.values()) / len(mapping)
16.0