“i”元素的算术平均值[重复]
Posted
技术标签:
【中文标题】“i”元素的算术平均值[重复]【英文标题】:Arithmetic mean for 'i' elements [duplicate] 【发布时间】:2016-04-20 03:22:55 【问题描述】:代码应该从现有列表x
创建一个新列表m
。
m[i]
中的每个元素都应该是x
中i
元素的算术平均值,但我无法让它以任何方式工作。
def mari(x):
m = []
i = 0
for i in range(1,len(x)):
m[i]=((sum(x[i])/i+1))
i = i+1
return m
x = [1, 2, 3, 4, 5]
print mari(x)
TypeError: 'int' 对象不可迭代
是什么似乎阻止它工作。
【问题讨论】:
好吧,一方面,i = i+1
你不会像那样修改循环索引。它会自动处理它。 sum(x[i])
你正在尝试对一个数字求和。
【参考方案1】:
最简单和最有效的方法是将输入列表的元素的总和和计数分开保存。然后算术平均值如果只是当前总和除以当前计数:
def mari(x):
s = 0.0 # current sum
cnt = 0 # current count
m = [] # list to return
for i in x:
s += i
cnt += 1
m.append(s / cnt)
return m
【讨论】:
【参考方案2】:根据你的代码,你可以试试这个:
def mari(x):
m = []
m.append(x[0])
for i in range(1,len(x)):
m.append((sum(x[0:i+1]))/(i+1))
return m
x = [1, 2, 3, 4, 5]
print mari(x)
【讨论】:
以上是关于“i”元素的算术平均值[重复]的主要内容,如果未能解决你的问题,请参考以下文章