2017-03-06 83 views
0

我試圖找到一個簡單的單行代碼來計算每個嵌套列表的平均值。將會有一個二維整數列表和一個輸出浮點值的輸入。踢球者是我試圖用內置的map()來做到這一點,但我不確定如何。只是想玩一些東西。使用映射來查找嵌套列表的平均值

理解代碼:

row_sum = [(sum(idx)/float(len(idx))) for idx in matrix] 
return row_sum 

任何提示,將不勝感激。

+1

您是否使用內置'map'函數使用lambda函數? – jtmingus

+1

@jtmingus爲什麼'lambda'?爲什麼不是全功能定義? –

+0

@ juanpa.arrivillaga他說他想在一行代碼中做到這一點 – jtmingus

回答

1

如果你打算使用map,這應該工作

row_sum = list(map(lambda idx: sum(idx)/float(len(idx)), matrix)) 
1

似乎很簡單。您可以讓自己「的意思是」溫控功能或使用來自statistics庫:

>>> import statistics 
>>> rows = [[1,2,3], [4,5,6]] 
>>> list(map(statistics.mean, rows)) 

我在Python 3中的一個,所以/不是整數除法:

>>> def average(lst): return sum(lst)/len(lst) 
... 
>>> list(map(average, rows)) 
[2.0, 5.0] 

有趣的是statistics.mean返回int ......

>>> rows = [[1,2,3], [4,5,6,3]] 
>>> list(map(statistics.mean, rows)) 
[2, 4.5] 

非常有趣......

+0

確實 - https://github.com/python/cpython/blob/3.6/Lib/statistics.py#L106 – wwii

+0

我目前使用2.7,我不相信有'統計'庫,看起來像我應該安裝3. – eeskonivich

+0

@eeskonivich是的,確實如此。你應該使用3,除非你有充分的理由使用2。 –