Python中的大量变量声明和赋值
我想创建一批字典:
January = {}
February = {}
March = {}
我更想这样做:
一月、二月、三月…… = {}
当然,这样写是行不通的。
最终,我想创建一个包含这些字典的字典:
MONTHS_DICT = {'01':January,'02':February...}
逐行写代码并不复杂,但我刚开始学Python……如果我发现自己在做重复的事情,通常就说明有更高效的方法可以做到。
有什么想法吗?
附言:我在使用Python 2.x,但如果用3.x来举例会更有帮助,那也没问题。
3 个回答
3
小心点!
你可以这样做:
foo = bar = baz = ''
但是你不能这样做:
foo = bar = baz = {}
否则会导致 foo
、bar
和 baz
都指向同一个变量,这样会出现引用的问题!
>>> foo = bar = baz = {}
>>> bar
{}
>>> foo
{}
>>> baz
{}
>>> foo['test'] = 1
>>> foo
{'test': 1}
>>> bar
{'test': 1}
>>> baz
{'test': 1}
给多个变量赋值为空字典,最简洁的方法可能是:
foo, bar, baz = {}, {}, {}
9
January, February, March = {}, {}, {}
这是一种更简洁的方式来进行初始声明。
6
你为什么要把月份的名字当成变量呢,如果你根本不使用它们?你可以直接写
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"]