Создать словарь "календарь" в Python3

Рейтинг: 1Ответов: 2Опубликовано: 16.10.2014

Пытаюсь реализовать генератор словаря, который будет организован, как календарь, т.е. 12 месяцев, в которых 31 день, и в каждом дне есть список (в который будут складываться другие списки).

Вот мой код:

year = {}
monthes = ['jan', 'feb', 'mrt', 'apr', 'may', 'jun', 'jul', 'avg', 'spt', 'okt', 'nov', 'dec']
days = {}

for elem in range(1, 32):
    days[elem] = dict()

for elem in monthes:
    year[elem] = days

print(year)

Ответы

▲ 3

В стандартной библиотеке python есть модуль calendar, который прекрасно справляется с этой задачей.

▲ 1
import calendar

class Cl(dict):
    def __init__(self):
        self.update({}.fromkeys(calendar.month_name[1:]))
        d = tuple(range(1, 32))
        for m in self:
            self[m] = {}.fromkeys(d, [[m]])

    def __missing__(self, key: (int, int)):
        return self[calendar.month_name[key[0]]][key[1]]

c = Cl()

print(c)
print(c[5, 6][0][0])

out:

{'September': {1: [['September']], 2: [['September']], ...}, 'February': {1: [['February']], 2: [['February']], ...}, ...}
May