如何循环生成多个字典?

如何循环生成多个字典?

想通过循环一次性生成多个字典
比如,想生成三个字典,分别为a、b、c,a、b、c 的结构相同:a={"x":"y"}、b={"x":"y"}、c={"x":"y"}
我用for循环,结果没得到我想要的

[Copy to clipboard] [ - ]
CODE:
for i in ('a','b','c'):
  i={}
  i["x"]="y"

结果只是生成了一个i={"x":"y"}的字典,该怎么写才可以呢?谢谢


QUOTE:
原帖由 xki 于 2008-4-25 23:31 发表
想通过循环一次性生成多个字典
比如,想生成三个字典,分别为a、b、c,a、b、c 的结构相同:a={"x":"y"}、b={"x":"y"}、c={"x":"y"}
我用for循环,结果没得到我想要的


for i in ('a','b','c'):
  i={}
...

import copy
for item in ('a','b','c'):
    locals()[item]=copy.deepcopy({'x':'y'})

a = {}
b = {}
c = {}
for i in (a, b, c):
    i['X'] = 'Y'
>>> for i in ('a', 'b', 'c'):
...     locals() = dict([('X', 'Y')])
...     
>>> a
{'X': 'Y'}
>>> b
{'X': 'Y'}
>>> c
{'X': 'Y'}

你在运行那个之前a,b,c的变量 并没有的 a,b,c成了字符串

如果要全局用 globals 代替locals
>>> for i in ('a', 'b', 'c'):
...     exec i+"={}"
...     exec i+"['x']='y'"