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

问题描述 投票:0回答:1

如果我有一个列表,比如说。

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))]

我非常希望只用理解力。

python python-3.x list list-comprehension
1个回答
1
投票

下面的代码应该可以完成工作。

[sum(i)/len(i) for i in zip(*foo)]

1
投票

试试这个

import statistics
foo =  [[4, 6, 2, 7], [1.2, 8.3, 9, 16]]
x = [statistics.mean(i) for i in zip(*foo)]
print(x)

1
投票

如果你不想使用任何软件包,

[statistics.mean([foo[j][i] for j in range(len(foo))]) for i in range(len(foo[0]))]

numpy 那就是

import numpy as np
arr = 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]))]
© www.soinside.com 2019 - 2024. All rights reserved.