Python &引用;列表索引必须是整数,而不是“列表”;在访问列表的元素时
这是我的代码行Python &引用;列表索引必须是整数,而不是“列表”;在访问列表的元素时,python,list,syntax-error,Python,List,Syntax Error,这是我的代码行 v_recorrido= [[4, 45], [4, 15], [4, 45]] t=0 for i in v_recorrido: seg = 60*v_recorrido[i][0] + v_recorrido[i][1] 您正在向我抛出以下错误: TypeError:列表索引必须是整数,而不是列表 为什么??我不熟悉Python(主要来自C++),但我已经检查了文档中的语法,它似乎是正确的。Python for循环在其
v_recorrido= [[4, 45], [4, 15], [4, 45]]
t=0
for i in v_recorrido:
seg = 60*v_recorrido[i][0] + v_recorrido[i][1]
您正在向我抛出以下错误:
TypeError:列表索引必须是整数,而不是列表
为什么??我不熟悉Python(主要来自C++),但我已经检查了文档中的语法,它似乎是正确的。Python for循环在其他一些语言中被描述为“for each”循环。也就是说,每次迭代中的
i
不是索引,而是v_recorrido
中的实际元素。因此:
seg = 60*i[0] + i[1]
这在某些语言中称为for-each循环,这意味着迭代变量接受每个元素的值,而不是元素的索引。错误是因为您试图使用其元素为v_recorrido
下标
将其更改为:
for i in v_recorrido:
seg = 60*i[0] + i[1]
在您的示例中,i实际上是一个列表项。在第一次迭代中,它等于[4,45],然后等于[4,15],最后等于[4,45] 您可能希望在等于v_recorrido长度的范围内进行迭代。比如:
for i in range(len(v_recorrido)):
....
您是否查找了语句的
?还是去看电影?这种行为已经被非常彻底地记录下来了。把这个问题的确切标题放到谷歌搜索中,而不是SO的“提问”框也会很有用。
for i in range(len(v_recorrido)):
....