我試圖找到一個簡單的單行代碼來計算每個嵌套列表的平均值。將會有一個二維整數列表和一個輸出浮點值的輸入。踢球者是我試圖用內置的map()來做到這一點,但我不確定如何。只是想玩一些東西。使用映射來查找嵌套列表的平均值
理解代碼:
row_sum = [(sum(idx)/float(len(idx))) for idx in matrix]
return row_sum
任何提示,將不勝感激。
我試圖找到一個簡單的單行代碼來計算每個嵌套列表的平均值。將會有一個二維整數列表和一個輸出浮點值的輸入。踢球者是我試圖用內置的map()來做到這一點,但我不確定如何。只是想玩一些東西。使用映射來查找嵌套列表的平均值
理解代碼:
row_sum = [(sum(idx)/float(len(idx))) for idx in matrix]
return row_sum
任何提示,將不勝感激。
如果你打算使用map
,這應該工作
row_sum = list(map(lambda idx: sum(idx)/float(len(idx)), matrix))
似乎很簡單。您可以讓自己「的意思是」溫控功能或使用來自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]
非常有趣......
確實 - https://github.com/python/cpython/blob/3.6/Lib/statistics.py#L106 – wwii
我目前使用2.7,我不相信有'統計'庫,看起來像我應該安裝3. – eeskonivich
@eeskonivich是的,確實如此。你應該使用3,除非你有充分的理由使用2。 –
您是否使用內置'map'函數使用lambda函數? – jtmingus
@jtmingus爲什麼'lambda'?爲什麼不是全功能定義? –
@ juanpa.arrivillaga他說他想在一行代碼中做到這一點 – jtmingus