Массовое объявление и присваивание переменной в Python - PullRequest
2 голосов
/ 26 апреля 2011

Попытка создать пакет словарей: январь = {} февраль = {} март = {}

Я бы предпочел сделать что-то вроде: январь, февраль, март ... = {}

что, конечно, не работает.

В конечном итоге я хочу создать словарь из следующих словарей:

MONTHS_DICT = {'01': январь, '02 ': февраль ...}

Это не тонна кода, чтобы делать это построчно, но я просто изучаю Python и ... делая что-то повторяющееся, обычно говорит мне, что это можно сделать более эффективно другим способом.

Мысли?

ps Я работаю с python 2.x, но если использование 3 для этого примера поможет, это не проблема.

Ответы [ 2 ]

7 голосов
/ 26 апреля 2011
January, February, March = {}, {}, {}

Это немного более краткий способ сделать первоначальное объявление.

4 голосов
/ 26 апреля 2011

Почему вы хотите указывать имена месяцев как переменные, если вы их не используете?Вы можете просто написать

month_dicts = [{} for _ in range(12)] # twelve dicts
numbers = ["%02d" % x for x in range(1,13)] # strings "01" ... "12"

# the dict
MONTHS_DICT = dict(zip(numbers, month_dicts))
# the dict for March
MONTHS_DICT["03"]
...