首页 > 解决方案 > 如何修复“IndexError:列表索引超出范围”

问题描述

我试图计算列表中迟到的(负数)的数量。输入数据后,我得到了 Traceback

'IndexError: list index out of range'

巴士路线分为 4 周,每条有 5 个值(工作日)。代码所做的第一件事就是将这些周加在一起,为整个路线组合一个列表。然后我使用 for in 循环来计算每个值,看看它是否是负数,然后将其添加到名为“VarBUSANoLate”的计数中

VarBUSANoLatelist = (VarBUSA1 + VarBUSA2 + VarBUSA3 + VarBUSA4)
for Counter in VarBUSANoLatelist[0:20]:
    if VarBUSANoLatelist[Counter] < 0:
        VarBUSANoLate = VarBUSANoLate + 1

我应该得到那个组迟到的数字,但只是得到这个错误'IndexError:list index out of range'

标签: pythonpython-3.x

解决方案


有两种迭代 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
    

推荐阅读