我正在尝试计算列表中延迟到达的数量(负数)。输入数据后,我仅获得Traceback
1 to x
巴士路线被分成4个星期,每个星期有5个值(“工作日”)。代码要做的第一件事是将这周的时间加在一起,以合并整个路线的一个列表。然后,您在for in循环中对每个值进行计数以查看它是否为负数,然后将其添加到称为“ VarBUSANoLate”的计数中
'IndexError: list index out of range'
我应该以该组迟到的Number结尾,但只会收到此错误“ IndexError:列表索引超出范围”
答案 0 :(得分:2)
有两种迭代for循环的方式,并且您混合了两种方式。
第一种方法是使用索引
for Counter in range(20):
if VarBUSANoLatelist[Counter] < 0:
VarBUSANoLate = VarBUSANoLate + 1
另一种方法是使用数组本身中的元素
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