字典在分配新值时覆盖以前的键值

时间:2017-05-22 15:56:07

标签: python-2.7 list dictionary

举个例子:

data_out = []
this_data_out = {}
this_data_out['acn'] = 123
this_data_out['name'] = 'pk'
data_out.append(this_data_out)
data_out
[{'acn': 123, 'name': 'pk'}]
this_data_out['acn'] = 124
this_data_out['name'] = 'rp'
data_out.append(this_data_out)
data_out
[{'acn': 124, 'name': 'rp'}, {'acn': 124, 'name': 'rp'}]

我希望结果是

[{'acn': 123, 'name': 'pk'}, {'acn': 124, 'name': 'rp'}]

请帮我理解这是怎么发生的?

由于

1 个答案:

答案 0 :(得分:1)

第一次data_out电话后,{p> [this_data_out].append(),第二次电话后[this_data_out, this_data_out]this_data_out

将它附加到列表中并没有复制其内容,它只是指向那里pip install tensorflow --upgrade中的内容 - 所以当你改变那个字典时,你在列表中看到的内容也发生了变化。 / p>