所以我在这里解决了我有点尴尬的错误:What is happening with my types, TypeError? (Python)
现在我得到了另一个。
我检索数据的方法:
def retrieveSpeeds(databasepath, someid):
con = lite.connect(databasepath)
with con:
cur = con.execute("SELECT speed FROM speeds WHERE id = someid")
speeds = [x[0] for x in cur]
for i in range(0, len(speed)):
newspeeds.append(float(speed[i]))
return speeds
所以返回看起来像:
[14.0, 14.5, 14.5, 14.5, 14.5, 13.8]
我的主要做法是:
maxspeeds = []
for id in userid:
speed = retrieveSpeeds(databasepath, id)
if len(speed)>0:
maxspeeds.append(max(speed))
for i in range(0,len(maxspeeds)):
if maxspeeds[i] > 40:
maxspeeds = maxspeeds.pop(i)
现在我的新问题是:
Traceback (most recent call last):
if maxspeeds[i]>40:
TypeError: 'float' object has no attribute '__getitem__'
怎么突然想到我的list是float对象呢?我还会犯更多错误吗?
请您参考如下方法:
您正在将 maxspeeds 分配给 maxspeeds.pop(i) 的输出,它返回一个 number,它是 popped 项目。相反,不要为输出分配任何内容:
maxspeeds = []
for id in userid:
speed = retrieveSpeeds(databasepath, id)
if len(speed)>0:
maxspeeds.append(max(speed))
for i in range(0,len(maxspeeds)):
if maxspeeds[i] > 40:
maxspeeds.pop(i) #Here
.pop返回已删除项目的索引,因此当您将列表分配给该输出时,列表成为索引(整数)。
