我是python的新手,所以这可能是一个愚蠢的问题。我确定答案是在文档或堆栈溢出的另一个线程中,但我找不到它。
我有一个列表:dict_list = ['first_dict', 'second_dict', 'third_dict']
我需要一种方法为此列表中的每个条目创建一个字典,然后使用其列表索引引用它。因此,通过引用dict_list[0]
,我希望能够创建一个新字典first_dict = {}
。
然后,我希望以后能够使用dict_list[0]
再次引用该词典,然后将键和值分配给first_dict。
此dict_list
将包含1到1000个条目。
答案 0 :(得分:3)
你需要什么名字?答案是,你不是。当您开始考虑以编程方式分配一堆变量名称时,特别是如果这些名称中包含数字,那么您最好只创建一个列表或其他容器。
dict_list = [{} for x in xrange(3)]
现在dict_list[0]
是一个字典,dict_list[1]
是另一个字典,依此类推。这使得它们可以轻松地进行迭代和访问,而不会像globals()
或eval()
那样使用。
答案 1 :(得分:0)
您可以使用globals()
:
In [54]: dict_list = ['first_dict', 'second_dict', 'third_dict']
In [55]: for x in dict_list:
globals()[x]=dict()
....:
....:
In [57]: dict_list=[globals()[x] for x in dict_list]
In [58]: dict_list[0]['key']='value' #add key to first_dict
In [60]: first_dict
Out[60]: {'key': 'value'}
In [63]: first_dict is dict_list[0] #dict_list[0] and first_dict are same objects
Out[63]: True