1

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

我有一个清单:dict_list = ['first_dict', 'second_dict', 'third_dict']

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

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

dict_list将包含 1 到 1000 个条目。

4

2 回答 2

3

你需要这些名字做什么?答案是,你没有。当您开始考虑以编程方式分配一堆变量名称时,特别是如果这些名称中包含数字,您最好只制作一个列表或其他容器。

dict_list = [{} for x in xrange(3)]

现在dict_list[0]是一本字典,dict_list[1]是另一本,等等。这使它们易于迭代和访问,而无需像globals()eval().

于 2012-10-27T17:10:16.707 回答
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
于 2012-10-27T17:11:10.190 回答