У меня есть упорядоченный словарь в python, где ключи имеют формат даты и времени, а значения представляют собой списки элементов. Я хотел бы иметь возможность фильтровать пары ключ-значение в этом словаре по разнице между ключом и первым ключом. Например, я хотел бы сохранить только те пары ключ-значение, которые произошли не позднее, чем через 5 дней после первой пары ключ-значение. Другими словами, если вычесть 1-е значение ключа из другого значения ключа, разница составит 5 дней или меньше.
Я знаю, что могу отфильтровать словарь по простому условию, как это было сделано здесь:
Как отфильтровать словарь по произвольному условию функция?
Но я не уверен, как настроить условие в моем случае, так как мне нужно иметь абсолютную ссылку на первый ключ и относительно каждого другого ключа в словаре.
Словарь, который я хотел бы отфильтровать, выглядит так:
my_dict = OrderedDict([
(Timestamp('2019-01-11 00:00:00'), ['a','b','c']),
(Timestamp('2019-01-16 00:00:00'),['c', 'e', 'f', 'k']),
(Timestamp('2019-01-23 00:00:00'), ['a', 'c', 'l']),
(Timestamp('2019-02-08 00:00:00'), ['w','y','z'])
])
Мой отфильтрованный словарь должен содержать только пары ключ-значение, у которых есть ключи в течение 5 дней после первого ключа, поэтому я должен получить только первые две пары ключ-значение.
filt_dict = OrderedDict([
(Timestamp('2019-01-11 00:00:00'), ['a','b','c']),
(Timestamp('2019-01-16 00:00:00'),['c', 'e', 'f', 'k']),
])