У меня есть список datetime
объектов и я хочу найти ближайшие 5 (или 6 или 7 и т. Д.) Дат, которые соответствуют моей указанной дате.
Например:
datelist
>>>> [datetime.date(2017, 3, 4), datetime.date(2017, 3, 6), datetime.date(2017, 3, 12), datetime.date(2017, 3, 27), datetime.date(2017, 3, 27), datetime.date(2017, 3, 29), datetime.date(2017, 3, 29), datetime.date(2017, 4, 2), datetime.date(2017, 4, 4)]
Если я наберу:
my_date = datetime.date(2017, 4, 2)
nearest_list = find_nearest(datelist, my_date) # Functionality I want!
print nearest_list
>>>> [datetime.date(2017, 3, 27), datetime.date(2017, 3, 29), datetime.date(2017, 3, 29), datetime.date(2017, 4, 2), datetime.date(2017, 4, 4)]
Я получу список ближайших 5 дат.
Я знаючто я мог бы найти ближайшую дату и взять два элемента списка по обе стороны от этого (так как список дат отсортирован), но это трудно, когда ближайшая дата может быть первым или последним элементом (т.е. никаких элементов до или после, соответственно).