【发布时间】:2018-09-04 22:54:46
【问题描述】:
这是代码:
def appd():
atho = []
data = {'snm':None}
for i in range(5):
data['snm'] = i
atho.append(data)
return atho
我希望结果是这样的:
[{'snm': 0}, {'snm': 1}, {'snm': 2}, {'snm': 3}, {'snm': 4}]
但是我在python 3平台得到的结果是:
[{'snm': 4}, {'snm': 4}, {'snm': 4}, {'snm': 4}, {'snm': 4}]
这是怎么发生的?
【问题讨论】:
-
因为这是一个字典——它只存储不同的键名。并且您总是将 i 的新值分配给同一个键 - 因此所有条目都具有相同的值。
-
只有一本字典,
data。每次,您都更改这个字典,然后将新的引用添加到atho。