Если вы запустите следующий фрагмент, он будет работать вечно, даже если я явно больше 100.
i = 0
while i < 100:
while True:
i += 1
print(i)
Ваш код делает нечто похожее - в случае, если i == len(startDate) - 1
; startDate[i] == stopDate[j]
; stopTime[j] > startTime[i]
; и startBehavior[i] == stopBehavior[j]
, ваш код будет увеличивать i так, чтобы i == len(startDate)
, а затем, поскольку j < len(stopDate)
по-прежнему True
, вы не выйдете из своего второго цикла while. Когда вы попытаетесь получить доступ к startDate[i]
, вы получите IndexError
.
Это в некоторой степени зависит от данных, поэтому вполне возможно, что оно работало раньше, не сталкиваясь с этой проблемой.