如何修复“ IndexError:列表索引超出范围”

时间:2019-04-26 11:35:16

标签: python python-3.x

我正在尝试计算列表中延迟到达的数量(负数)。输入数据后,我仅获得Traceback

1 to x

巴士路线被分成4个星期,每个星期有5个值(“工作日”)。代码要做的第一件事是将这周的时间加在一起,以合并整个路线的一个列表。然后,您在for in循环中对每个值进行计数以查看它是否为负数,然后将其添加到称为“ VarBUSANoLate”的计数中

'IndexError: list index out of range'

我应该以该组迟到的Number结尾,但只会收到此错误“ IndexError:列表索引超出范围”

2 个答案:

答案 0 :(得分:2)

有两种迭代for循环的方式,并且您混合了两种方式。

  1. 第一种方法是使用索引

    for Counter in range(20):
        if VarBUSANoLatelist[Counter] < 0:
            VarBUSANoLate = VarBUSANoLate + 1
    
  2. 另一种方法是使用数组本身中的元素

    for Counter in VarBUSANoLatelist[0:20]:
        if Counter < 0:
            VarBUSANoLate = VarBUSANoLate + 1
    

答案 1 :(得分:1)

您误解了for循环;您的变量Counter包含值,而不是值的索引。 并且由于它们是值,因此如果值恰好大于列表中的元素数,部分VarBUSANoLatelist[Counter]将引发错误。

这意味着您可以将循环更改为此:

for v in VarBUSANoLatelist[0:20]:
    if v < 0:
        VarBUSANoLate = VarBUSANoLate + 1