#python #datetime #for-loop #multi-index
#питон #дата и время #for-цикл #многоиндексный
Вопрос:
Я пытаюсь объединить даты ( datetime.date
формат) во времена ( datetime.datetime
формат).
Даты и время были извлечены отдельно из единого «основного списка», который содержал смешанную информацию. По этой причине я также сохранил их индексы (из «основного списка») в кортежах, чтобы позволить мне повторно интегрировать их позже, обратно в «основной список», где они принадлежат.
Идет вот так:
Dates = [(i,date)]
Times = [(i,time)]
Образец из списка дат:
[(0, datetime.date(2021, 2, 5)),
(118, datetime.date(2021, 2, 6)),
(176, datetime.date(2021, 2, 7))]
Пример из списка Times:
[(1, datetime.datetime(1900, 1, 1, 6, 0)),
(6, datetime.datetime(1900, 1, 1, 6, 30)),
(11, datetime.datetime(1900, 1, 1, 7, 0)),...
(150, datetime.datetime(1900, 1, 1, 7, 30)),
(155, datetime.datetime(1900, 1, 1, 7, 30)),
(160, datetime.datetime(1900, 1, 1, 8, 0)),
(180, datetime.datetime(1900, 1, 1, 8, 30)),...
(185, datetime.datetime(1900, 1, 1, 9, 0)),
(190, datetime.datetime(1900, 1, 1, 9, 30))]
Часть, которую я не могу понять, как кодировать…
Для любых сохраненных индексов (в кортежах) из списка времен, которые находятся между последующими сохраненными индексами (в кортежах) из списка дат, необходимо интегрировать дату по нижнему индексу.
Другими словами, логика должна быть:
- любые временные индексы (например, времена [1] [0]) между индексом на дату [0] [0] и датой [1] [0] (таким образом, сохраненные индексы [0:: 118]) должны интегрировать дату [0] [1].
- любые временные индексы (например, времена [1] [0]) между индексом на дату [1][0] и датой [2] [0] (таким образом, сохраненные индексы [118::176]) должны интегрировать дату [0] [1].
Кто-нибудь хорош в математике, готов принять вызов?
Кроме того, я знаю, что этот бит позволит мне комбинировать даты в каждый момент времени:
da = datetime.date(2021, 2, 5)
ti = datetime.time(6, 0)
date_time_obj = datetime.datetime.combine(da,ti)
Я также пробовал играть с ними:
for i1,(true_index1,date) in zip(range(len(dates)),dates):
for i2,(true_index2,time) in zip(range(len(times)),times):