我试图让一个函数把数组和int作为输入,在做了一些计算之后返回一个相同长度的数组。你知道吗
我对Python完全陌生,可能只是犯了一个非常明显的错误,但我自己无法解决它。你知道吗
错误消息说我超出了范围,但我试图缩短和扩大for循环的范围?你知道吗
def WMA(element, duration):
multiplier = 1 / duration
z = [len(element)]
z[0] = element[0] * multiplier
for k in range(1, len(element) + 1):
z[k] = (element[k] * multiplier) + (z[k - 1] * (1 - multiplier))
return z
错误消息:
IndexError: list assignment index out of range
这条线应该可以修复它:
后来:
正如罗纳德指出的。你知道吗
试试这个:
您不需要在for循环的range函数中向len(element)添加一个,因为range将从零开始并上升到len(element)-1,添加一个将使其变为indexootfrange:
例如
你有
for k in range(1, len(element) + 1):
假设
element
在它的列表中有N个项,这样len(element) == N
。在Python中,列表的第一个元素是element[0]
,最后一个元素是element[N - 1]
。但是你让k取1,2。。。当k为N时,索引器中会出现异常。你知道吗您应该将语句更改为:
相关问题 更多 >
编程相关推荐