Python '的算术平均值;i';元素
代码应该从现有列表Python '的算术平均值;i';元素,python,python-2.7,Python,Python 2.7,代码应该从现有列表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”对象不可编辑 最简单、最有效的方法是分别保存输入列
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”对象不可编辑
最简单、最有效的方法是分别保存输入列表中元素的总和和计数。如果当前总和除以当前计数,则为算术平均值:
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
根据您的代码,您可以尝试以下操作:
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=i+1
你不能这样修改循环索引。它会自动处理它sum(x[i])
您正在尝试对一个数字求和。