猿问

来自任意数量的嵌套列表的元素的平均值

如果我有一个列表,请说:

foo =  [[4, 6, 2, 7], [1.2, 8.3, 9, 16]]

我可以得到每个元素的平均值,如下所示:

[(a + b) / 2 for a, b in zip(foo[0], foo[1])]

要么

import statistics
[statistics.mean(i) for i in zip(foo[0], foo[1])]

我怎样才能对任意数量的嵌套列表做同样的事情foo

我尝试了几件事,但它们不起作用,例如:

[statistics.mean(i) for i in zip(list(foo))]

我强烈希望只使用理解。


ABOUTYOU
浏览 109回答 3
3回答

Smart猫小萌

下面的代码应该做的工作:[sum(i)/len(i) for i in zip(*foo)]

30秒到达战场

如果您不想使用任何包:[statistics.mean([foo[j][i] for j in range(len(foo))]) for i in range(len(foo[0]))]有了numpy它就会import numpy as nparr = np.array(foo)means = np.mean(arr,axis=0)编辑没有任何包裹:[sum([foo[j][i] for j in range(len(foo))])/len(foo) for i in range(len(foo[0]))]

料青山看我应如是

试试这个:import statisticsfoo =  [[4, 6, 2, 7], [1.2, 8.3, 9, 16]]x = [statistics.mean(i) for i in zip(*foo)]print(x)
随时随地看视频慕课网APP

相关分类

Python
我要回答