Вы можете использовать встроенный Python sum , чтобы получить сумму значения по году, чтобы получить среднее значение, просто разделите сумму на количество записей по году:
import os
from datetime import datetime, date
import datetime
test = {
datetime.date(1977, 6, 5): [81, 55, 0.0, False],
datetime.date(2007, 11, 18): [45, 41, 0.02, True],
datetime.date(2017, 11, 3): [43, 33, 0.3, True],
datetime.date(2007, 2, 24): [44, 36, 0.36, True],
datetime.date(2015, 2, 18): [54, 40, 0.0, False],
datetime.date(2008, 11, 18): [51, 43, 0.01, True],
datetime.date(1965, 12, 29): [43, 33, 0.27, True]
}
yearset = set([k.year for k in test.keys()])
for i in yearset:
print(sum([v[0] for k, v in test.items() if k.year == i]) / len(list(filter(lambda x: x.year == i, test.keys()))))
print(sum([v[3] for k, v in test.items() if k.year == i]))