这几行代码
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: list index必须是整数,而不是list
为什么?我是Python的新手(主要来自c++),但我已经检查了语法文档,它似乎是正确的。
Python的for循环在其他一些语言中被描述为"for-each"循环。也就是说,每次迭代中的i
不是索引,而是v_recorrido
中的实际元素。所以:
seg = 60*i[0] + i[1]
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]
在您的示例中,i实际上是一个列表项。在第一次迭代中,它等于[4,45],然后等于[4,15],最后等于[4,45]。
您可能要寻找的是迭代等于v_recorrido长度的范围。如:
for i in range(len(v_recorrido)):
....