我试图找到列表中的项目并使用项目来计算。但发生了TypeError: 'float' object is not subscriptable
。python查找列表中的项目和'浮动'对象不可以订阅
这里的问题/列表:
history_lists=[[1,2,3,4],[2,3,1],[5,8,0,1]]
我想定位history_lists
每个列表中的最后两个项目,并计算平均值。
这里是我的代码:
def get_question(self):
combined_lists_history.append(var1)
combined_lists_history.append(var2)
history_lists = [[] for _for _ in range(max(combined_lists_history[1::2]))]
for i in range(1, len(combined_lists_history),2):
history_lists[combined_lists_history[i]-1].append(combined_lists_history[i-1])
# this codes are for recreating a list of lists
# combined_lists_history = [1,**1**,3,**1**,5,**3**,4,**1**,2,**2**,3,**2**,1,**2**,8,**3**,0,**3**,1,**3**,2,**1**,]
# history_lists=[[1,2,3,4],[2,3,1],[5,8,0,1]]
def get_avg(self):
for i, lst in enumerate(history_lists):
(history_lists[i][-1] + history_lists[i][-2])/2.0
# for each list in history_lists, retrieve last two item
我不确定错误,但在任何情况下,我不认为你的程序会做你的期望。你有一个返回语句的for循环。这意味着程序只会在循环中返回并返回。你的整个代码块相当于'return(history_lists [0] [ - 1] + history_lists [0] [ - 2])/ 2.0'。也许你想打印而不是回报?或者存储在某处并在循环结束时打印整个内容? – bouletta
为什么'返回'?如果你正在寻找一个发电机,然后使用'yield'。另外,不要命名变量'list'。 'list(map(lambda x:sum(x [-2:])/ 2.0,history_lists))'应该让你走得更远。 – Abdou
错误不在您提供的代码中。完整的堆栈跟踪和代码请吗? –