Хранить данные в Словаре, используя год, как внешний ключ к группе по годам и за каждый год подсчитать количество раз вы видите Ложные:
from collections import defaultdict
d = defaultdict(lambda: defaultdict(float))
from calendar import monthrange, month_name
for k, v in lst:
year, mth, _ = k.split("-")
d[int(year)][int(mth)] += not v
for year, dct in d.items():
for mn, v in dct.items():
_, days = monthrange(year, mn)
print("Average for {}-{} is {}".format(year, month_name[mn], v/days))
После того, как у вас есть счет вы можете использовать правильный количество дней в месяц за конкретный год для расчета процента. Не каждый год имеет одинаковое количество дней в месяц, поэтому вы не можете использовать общий календарь для проверки или игнорирования года, календарный модуль обрабатывает дни для нас.
Создание некоторые случайные данные:
from random import choice
lst = [('2015-09-{}'.format(i), choice((True, False))) for i in range(1,31)] + [('2015-11-{}'.format(i), choice((True, False))) for i in range(1,31)]
Выходы:
Average for 2015-September is 0.533333333333
Average for 2015-November is 0.6
Если год всегда текущий год, то вы можете упростить создание Dict для:
from collections import defaultdict
d = defaultdict(int)
for k, v in lst:
year, mth,_= k.split("-")
d[mth] += not v
print(d)
Но просто убедитесь, что вы снова сравниваете количество дней.
Сообщите нам ваше усилие кодирования, пожалуйста? – Nayuki