代码应该从现有列表m
创建新列表x
。
每个元素m[i]
应该是i
中x
元素的算术平均值,但我无法以任何方式使其工作。
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'对象不可迭代
似乎阻止它工作。
答案 0 :(得分:0)
最简单和最有效的方法是单独保留输入列表的元素和元素的数量。然后算术平均值只是当前总和除以当前计数:
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
答案 1 :(得分:0)
根据您的代码,您可以尝试:
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)