список 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
Кроме того, если вы пытаетесь сравнивать временные метки, вам следует преобразовать их в объекты даты и времени, используя библиотеку datetime
Например, если ваша временная метка была '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, а я уверен, что это не так, вам придется обновить строку формата в соответствии с вашим форматом меток времени, вы также можете получить секунды, миллисекунды. , минут и т. д. по вышеуказанной ссылке