Python列表索引超出范围,但不应为b

2024-09-28 01:28:07 发布

您现在位置:Python中文网/ 问答频道 /正文

startDate、stopDate、startTime、stopTime、startBehavior和stopBehavior都是长度相同的列表。我得到的列表索引超出了第5行的范围(如果startDate[I]!=停止日期[j]),我不知道为什么。它以前有用,现在不行了。我试图根据if/elif语句中的条件打印特定的行为。你知道吗

i = 0
while (i < len(startDate)):
    j = 0
    while (j < len(stopDate)):
        if startDate[i] != stopDate[j]:
            j += 1
        elif startDate[i] == stopDate[j]:
            if stopTime[j] < startTime[i]:
                j += 1
            elif stopTime[j] > startTime[i]:
                if startBehavior[i] != stopBehavior[j]:
                    j += 1
                elif startBehavior[i] == stopBehavior[j]:
                    print(startBehavior[i])
                    print(stopBehavior[j])
                    print('')
                    i += 1

任何帮助都将不胜感激!提前谢谢!你知道吗


Tags: 列表lenif语句条件printelifstarttime
1条回答
网友
1楼 · 发布于 2024-09-28 01:28:07

如果运行下面的代码段,它将永远运行,即使i明显大于100。你知道吗

i = 0
while i < 100:
    while True:
        i += 1
        print(i)

i == len(startDate) - 1startDate[i] == stopDate[j]stopTime[j] > startTime[i];和startBehavior[i] == stopBehavior[j]的情况下,您的代码会增加i,这样i == len(startDate),然后,由于j < len(stopDate)仍然是True,您就不会退出第二个while循环。当您尝试访问startDate[i]时,您将得到一个IndexError。你知道吗

这在某种程度上依赖于数据,因此它可能在以前工作过,但从未出现过此问题。你知道吗

相关问题 更多 >

    热门问题