使用变量名作为字典名称

时间:2016-06-06 15:01:47

标签: python dictionary

我想完成以下任务:

vname = [ 'name1', 'name2']

for i in len(vname):
  vname[i] = {} 
  vname[i]['key1'] = 4*i

我希望创建两个词典name1和name2,以便

name1['key1'] = 0
name2['key1'] = 4

2 个答案:

答案 0 :(得分:1)

我使用嵌套词典,在enumerate()的帮助下生成值:

>>> {key: {'key1': index * 4} for index, key in enumerate(vname)}
{'name2': {'key1': 4}, 'name1': {'key1': 0}}

答案 1 :(得分:0)

为了动态创建某个名称的变量,您可以将它们添加到全局名称空间:

>>> vname = [ 'name1', 'name2']
>>> for i in range(len(vname)):
...     globals()[vname[i]] = {}
...     globals()[vname[i]]['key1'] = 4*i
... 
>>> name1
{'key1': 0}
>>> name2
{'key1': 4}

但是,我从未遇到过这种情况有用或必要的情况。如果你想要......像这样,你很可能会使用不同的(并且表现更好的)数据结构,例如@alexce建议的嵌套dict