У меня проблема с использованием DateTime в качестве ключа.Моя цель состоит в том, чтобы получить информацию из одного источника данных, который включает Datetime, а затем найти в словаре и вернуть все значения для ключей, которые находятся в пределах 2 дней + - от ввода DateTime.
Например, мойвходные данные будут: datetime.datetime(2018, 9, 20, 12, 48)
Мой словарь для справки будет: example = {datetime.datetime(2018, 9, 20, 14, 43):'A', datetime.datetime(2018, 9, 18, 19, 41):'B', datetime.datetime(2018, 9, 15, 9, 12):'C'}
В этом случае я бы вернул: A, B
Я рассмотрел сортировкусловарь и затем создание словаря индексов, возможно, для нечетных дат, затем взятие моей входной даты, вычисление базовой даты + - 2 входной даты, обращение к индексу dict, а затем использование этих индексов для циклического прохождения по ссылкедиктовать только между индексами и возвращать все значения, которые там есть.
Моя главная проблема в том, что я не могу предсказать, какой будет дата-время dict или входные даты-время, поэтому я просто не уверен, смогу ли я вернутьзначения для диапазона ключей в поле dict, кроме циклического перебора индекса ключей в отсортированном порядке.Выполнение цикла for для всех ключей здесь неэффективно из-за количества просматриваемых ключей - я уже сокращаю этот список, максимально сокращая дедупликацию и внося только минимальный объем справочных данных.
Еще один момент заключается в том, что мои входные данные будут искать 100 000 секунд, многие из которых будут находиться в минутах, секундах или часах друг от друга, поэтому сокращение числа поисков и циклов будетважно сохранить время выполнения.
Я прошу прощения, если это не совсем правильный вопрос с полным кодом, чтобы посмотреть, но я в основном не уверен, с чего начать по этому вопросу, поэтому я не думал, что этопомог бы кому-нибудь добавить что-нибудь еще, кроме ввода и словаря с целью вывода.