如何在列表[python]中找到某个数字的平均值

如何在列表[python]中找到某个数字的平均值,python,Python,如果我有 a=[1,2,3,4,5] b=[1,2,3,4,5] c=[1,2,3,4,5] 我只想求a,b,c在数组位置的平均值0,1,2 输出类似于1+2+3+1+2+3+1+2+3+1+2+3/9 如何在循环中做到这一点?还有其他方法,但如果您不反对numpy,这很容易,并且可以避免显式循环: import numpy as np np.mean(np.stack((a,b,c))[:,:3]) 返回2.0 上面说:将所有数组的所有值的平均值加在一起,直到第三个 如果需要显式循

如果我有

 a=[1,2,3,4,5]
 b=[1,2,3,4,5]
 c=[1,2,3,4,5]
我只想求a,b,c在数组位置的平均值
0,1,2
输出类似于
1+2+3+1+2+3+1+2+3+1+2+3/9

如何在循环中做到这一点?

还有其他方法,但如果您不反对
numpy
,这很容易,并且可以避免显式循环:

import numpy as np

np.mean(np.stack((a,b,c))[:,:3])
返回
2.0

上面说:将所有数组的所有值的平均值加在一起,直到第三个

如果需要显式循环,可以执行以下操作:

my_list = []
for l in [a,b,c]:
    my_list.extend(l[:3])

sum(my_list) / len(my_list)

假设索引是连续的,它还返回
2.0

:您可以迭代列表,获取前三个元素的片段,然后进行
求和

In [1083]: a=[1,2,3,4,5]
      ...: b=[1,2,3,4,5]
      ...: c=[1,2,3,4,5]
      ...: 

In [1084]: sum(sum(i[:3]) for i in [a, b, c]) / 9
Out[1084]: 2.0
或者使用
itertools.islice
zip

In [1085]: sum(sum(i) for i in itertools.islice(zip(a, b, c), 3)) / 9
Out[1085]: 2.0

变量的值:

In [1086]: lists = [a, b, c]

In [1087]: indexes = 3

In [1088]: sum(sum(i[:indexes]) for i in lists) / (len(lists) * indexes)
Out[1088]: 2.0

In [1089]: sum(sum(i) for i in itertools.islice(zip(*lists), indexes)) / (len(lists) * indexes)
Out[1089]: 2.0

您可以使用列表理解和内置函数,这样就不必导入任何内容

lists = [a, b, c]
index = 3

mean = sum([(sum(item[:index])) for item in lists])/float(index*len(lists))

为了解决这个问题,你可能会分享你已经考虑过的问题。所以这不是一台免费的作业机。@ADAM很高兴我能帮上忙:)