这行代码
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 ++),但我已经检查了文档的语法,看起来是正确的。
答案 0 :(得分:0)
Python for循环在其他一些语言中描述为“for-each”循环。也就是说,每次迭代中的i
不是索引,而是v_recorrido
中的实际元素。所以:
seg = 60*i[0] + i[1]
答案 1 :(得分:0)
for i in v_recorrido:
seg = 60*v_recorrido[i][0] + v_recorrido[i][1]
在某些语言中称为for-each循环,这意味着迭代变量采用每个元素的值,而不是元素的索引。错误是因为您尝试使用其元素下标v_recorrido
。
将其更改为:
for i in v_recorrido:
seg = 60*i[0] + i[1]
答案 2 :(得分:0)
在您的示例中,我实际上是一个列表项。在第一次迭代中,它等于[4,45],然后是[4,15],最后是[4,45]。
您可能正在寻找的是迭代等于v_recorrido长度的范围。像:
for i in range(len(v_recorrido)):
....