首页 > 解决方案 > 如何在列表中找到某个数字的平均值[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/9 我如何在循环中做到这一点?

标签: python

解决方案


假设索引是连续的:您可以遍历列表,获取前三个元素的切片,然后执行以下操作sum

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

zipitertools.islice

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

推荐阅读