Python-获取for循环错误:IndexError:列表索引超出范围

时间:2020-05-20 22:10:10

标签: python list loops for-loop indexing

我只用了一段代码,却似乎找不到解决错误的答案

我不断收到以下错误消息,但没有任何意义:

temp = times[i].split(', ')
IndexError: list index out of range

作为上下文,即时消息会抓取网站以获取有关登录日期和时间的信息,它会检索登录日期和时间的文本版本,以便即时消息将时间转换为日期时间对象,以便于我减去另一个日期时间对象,找出该人是否迟到

我的第一步是用逗号(,)分隔日期和时间(均在单个字符串中),然后将时间转换为datetime对象,并在末尾添加if语句以确认是否登录时间小于班次开始时间,如果是,则从列表中弹出项目

如果我要删除IF语句,错误就会消失,这很奇怪,如果我将列表减少一,它也会消失

from datetime import datetime, date

times  = ['5/1/2020, 8:08:54', '5/1/2020, 10:07:09', '5/1/2020, 10:27:49', '5/1/2020, 10:53:14',
'5/1/2020, 11:57:46', '5/1/2020, 12:53:38', '5/1/2020, 2:04:52', '5/1/2020, 2:14:55']

#Analysts Shift
schedule = datetime.strptime('8:05:00', '%H:%M:%S').time()

for i in range(len(times)):
    temp = times[i].split(', ')
    a = datetime.strptime(temp[1], '%H:%M:%S').time()
    if datetime.combine(date.today(), a) < datetime.combine(date.today(), schedule):
        times.pop(i)

print(times)

1 个答案:

答案 0 :(得分:0)

将for循环更改为:

for i in range(len(times)-1):
相关问题