此问题在此处已有答案:
Changing one dict changes all dicts in a list of dicts [duplicate](1个答案)
7天前关闭
data = []
dic = dict.fromkeys(['a', 'b', 'c'], 0)
value = 1
for i in range(3):
key = list(dic.keys())
for j in range(len(dic)):
dic[key[j]] = value
value += 1
data.append(dic)
for i in data:
print(i)
字符串
在这段代码中,我是这样表示的。
{1, 2, 3}
{4, 5, 6}
{7, 8, 9}
型
但结果是
{7, 8, 9}
{7, 8, 9}
{7, 8, 9}
型
我如何修复这个代码以获得我期望的结果?
2条答案
按热度按时间r6hnlfcb1#
你只有一个字典,
dic
。您已经创建了一个包含三个引用的列表。要获得想要的结果,请更改代码,为主循环的每次迭代创建一个新的字典daolsyd02#
而不是:
字符串
用途:
型
这将创建一个新对象,而不是向列表中添加对dic的引用。