Python新手在这里。我正在尝试对包含浮点数的列表进行操作。 avg
是从不同方法返回的列表参数。但是,当我尝试执行以下操作时,它抛出一个错误,即 float() 应该有一个字符串或一个数字而不是一个列表。 avg1
应该包含带有浮点型数字而不是列表的列表的副本,对吗?我尝试了一些我在其他具有类似标题的帖子上阅读的编辑,但无法解决这个问题。刚开始时,请告诉我哪里出错了。
def movingavg(EMA,avg):
EMA=[]
avg1 = [float(i) for i in avg]
EMA[:3] = avg1[:3]
for i,j in zip(EMA[2:],avg1[3:]):
a =float(i)*0.67 + float(j)*0.33
EMA.append(a)
return EMA
我得到的错误如下:
avg1 = [float(i) for i in avg]
TypeError: float() argument must be a string or a number, not 'list'
使用 Python 3.4
原文由 Sastry Gosukonda 发布,翻译遵循 CC BY-SA 4.0 许可协议
而不是
avg1 = [float(i) for i in avg]
使用下面的代码。或者可以使用下面的列表理解。