计算字典平均值时出错

Error when calculating average on dictionary

假设我们有一个字典:

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

有什么建议吗?

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

[(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