2016-04-26 102 views
0

假設我們有一本字典:誤差計算的字典平均時

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 

有什麼建議嗎?

+2

'總和(dict.values())/ LEN(字典)'。並儘量避免內置函數/類型的陰影。 – vaultah

回答

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