假设我们有一本字典:
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
有什么建议吗?
答案 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