Как суммировать значения словаря, у которого ключи - это даты?
Как суммировать значения словаря, у которого ключи - это даты?
Cуммировать нужно только те значения, ключи которых в сумме не более 7-ми дней.
d = {'2020-10-04': 9,
'2020-10-05': 6,
'2020-10-07': 3,
'2020-10-10': 3,
'2020-10-20': 6}
Ответы (1 шт):
Автор решения: n1tr0xs
→ Ссылка
Как-то так:
import datetime as DT
def str_to_date(string):
return DT.datetime.strptime(string, '%Y-%m-%d').date()
_dict = {'2020-10-04': 9,
'2020-10-05': 6,
'2020-10-07': 3,
'2020-10-10': 3,
'2020-10-20': 6,
}
delta = DT.timedelta(days=7)
summs = []
keys = sorted(_dict.keys())
idx = 0
while keys:
summs.append(0)
date = str_to_date(keys[0])
while keys and (str_to_date(keys[0]) - date < delta):
summs[idx] += _dict[keys.pop(0)]
idx += 1
print(summs)