在for循环中动态创建几个字典,并在循环外引用它们

时间:2016-01-28 14:43:17

标签: python python-3.x for-loop dictionary on-the-fly

我想在for循环中创建一些词典:Dict1,Dict2,Dict3,...,Dict15。

dictstr = 'dict'
for ii in range(1,16):
    dictstrtemp = dictstr
    b = str(ii)
    dictstrtemp += b #--> "dictii" created; where ii is 1, 2, ..., 15
    print(dictstrtemp)

输出为15个字符串,从“dict1”到“dict15”。 现在我想为每个“dictii”分配一些条目,并在for循环之外引用它们。我怎么做?如果我添加“dictstrtemp = {}”,那么我不能将其称为“dict4”(对于exapmle),它只是dictstrtemp。但我希望能够在控制台中输入“dict4”并获取dict4的条目。

2 个答案:

答案 0 :(得分:2)

dictstr = 'dict'
dictlist = []
for ii in range(16):
    dictstrtemp = dictstr
    b = str(ii)
    dictstrtemp += b #--> "dictii" created; where ii is 1, 2, ..., 15
    dictlist.append(dictstrtemp)
    print(dictstrtemp)

print(dictlist[4])
'dict4'

list comprehension

dictstr = 'dict'
dictlist = [dictstr + str(i) for i in range(16)]

答案 1 :(得分:0)

试试这个。在这里,我将字典存储在另一个字典中,使用indes作为数字......你可以使用别的东西。

dict_of_dicts = {}

for ii in range(16):
    my_dict = {'dict' + str(ii) : 'whatever'}
    dict_of_dicts[ii] = my_dict

# now here, access your dicts
print dict_of_dicts[4]

# will print {'dict4' : whatever}