我想完成以下任务:
vname = [ 'name1', 'name2']
for i in len(vname):
vname[i] = {}
vname[i]['key1'] = 4*i
我希望创建两个词典name1和name2,以便
name1['key1'] = 0
name2['key1'] = 4
答案 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
。