> Надо сделать так, чтобы оставались элементы только с сегодняшней датой и +- 4 дня.
Это фильтр тогда. Например так:
import datetime
lst = [{'date': '2017-09-03'}, {'date': '2017-09-02'}, {'date': '2017-09-01'}, {'date': '2017-09-28'}, {'date': '2017-10-02'}]
now = datetime.datetime.now()
lst2 = filter(lambda x: datetime.datetime.strptime(x['date'], '%Y-%m-%d')>now-datetime.timedelta(days=4) and datetime.datetime.strptime(x['date'], '%Y-%m-%d')<now+datetime.timedelta(days=4), lst)
>>> lst2
[{'date': '2017-09-28'}, {'date': '2017-10-02'}]
Остаток массива
lst_sorted = filter(lambda y: y not in lst2, sorted(lst, key=lambda x: datetime.datetime.strptime(x['date'], '%Y-%m-%d')))
Результат:
>>> lst2 + lst_sorted
[{'date': '2017-09-28'}, {'date': '2017-10-02'}, {'date': '2017-09-01'}, {'date': '2017-09-02'}, {'date': '2017-09-03'}]