创建可变数量的字典,其名称取自Python中的列表

时间:2016-01-14 03:15:44

标签: python variables python-3.x dictionary

我有一个在for循环中增长和缩小的列表。该列表如下: - 。对于列表列表中的每个元素,我想将它与单独的字典相关联。

/some/page.php

在这种情况下,我想创建4个具有以下名称的词典

list123 = [[1010,0101],[0111,1000]]

我尝试了循环

dict1010 = {}
dict0101 = {}
dict0111 = {}
dict1000 = {}

这是我得到的错误

for list1 in list123:
    for element in list1:
        dict + str(element) = dict()

3 个答案:

答案 0 :(得分:0)

您可以使用globals()函数将名称添加到全局命名空间,如此

for list1 in list123:
    for element in list1:
        globals()["dict"+str(element)] = {}

这将使用您想要的名称添加变量,就像使用dictx={}创建它们一样,以0开头的数字也无法使用str()很好地转换,因此您应该使列表成为字符串列表

答案 1 :(得分:0)

首先,我必须说你不应该这样做。但是,如果您真的想要,可以使用exec

如果你真的想这样做,你可以使用exec:

list123 = [[1010,0101],[0111,1000]]
for list1 in list123:
    for element in list1:
        var = 'dict' + str(element)
        exec(var + ' = dict()')

答案 2 :(得分:0)

虽然你可以动态创建变量,除非有一个压倒性的需要使用而不是字典字典巫婆键是你想要的名称,像这样

my_dicts=dict()
for list1 in list123:
    for element in list1:
        my_dicts["dict" + str(element)] = dict()

并访问其中一个,例如my_dicts["dict1010"]