start必须先声明列表,然后才能使用它,并且应该是在使用的任何循环的外部,否则它将被覆盖。
你还可以简单地使用几个python函数迭代这些列表:start = []
for element in time:
for i in range(len(sessionStart)-1):
if element >= sessionStart[i] and element < sessionStart[i+1]:
start.append(sessionStart[i])for x in my_list将遍历每个元素(可以与变量一起使用)。x)在名为my_list。
for in range(value)从0迭代到(值-1)的长度,因此不需要每次都使用索引变量并将1添加到索引变量中。
此外,如果要比较时间戳,则应该使用日期时间库
例如,如果时间戳为“2018-08-15”,则可以将其转换为进行比较的日期。datetime.datetime.strptime(timestamp, '%Y-%m-%d')
因此,在循环中使用,应该如下所示:from datetime import datetime
start = []
for timestamp in time:
timestamp = datetime.strptime(timestamp, '%Y-%m-%d')
for i in range(len(sessionStart)-1):
if timestamp >= datetime.strptime(sessionStart[i], '%Y-%m-%d')
and timestamp < datetime.strptime(sessionStart[i+1], '%Y-%m-%d'):
start.append(sessionStart[i])
当然,假设你的时间戳是YYYY-MM-DD格式,我确信它们不是,你必须根据时间戳格式更新格式字符串,你还可以在上面的链接中得到秒、毫秒、分钟等。