访问列表列表的元素时,“列表索引必须是整数,而不是列表”

时间:2016-10-18 09:18:30

标签: 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 ++),但我已经检查了文档的语法,看起来是正确的。

3 个答案:

答案 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)):
  ....