Python:如何创建以列表条目命名的字典?

时间:2012-10-27 17:06:06

标签: python dictionary

我是python的新手,所以这可能是一个愚蠢的问题。我确定答案是在文档或堆栈溢出的另一个线程中,但我找不到它。

我有一个列表:dict_list = ['first_dict', 'second_dict', 'third_dict']

我需要一种方法为此列表中的每个条目创建一个字典,然后使用其列表索引引用它。因此,通过引用dict_list[0],我希望能够创建一个新字典first_dict = {}

然后,我希望以后能够使用dict_list[0]再次引用该词典,然后将键和值分配给first_dict。

dict_list将包含1到1000个条目。

2 个答案:

答案 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