写了一段代码
ranges=dict = {"x" : 1236, "y" : 234, "z" : 2345}
list=[]
a={}
for item in ranges:
a = item
list.append(a)
print(list)
发现list全部变成了最后一个元素
原因在于
dict是可变变量,当在循环外创建dict时,申请了一块地址
而当list.append时,append的是引用了当前的这块内存
每次循环,我们都对内存中的数值进行了改变,
list的每个元素都会改变,因为他们引用了同一个地址
所以我们把代码改成这样
ranges=dict = {"x" : 1236, "y" : 234, "z" : 2345}
list=[]
for item in ranges:
a={}
a = item
list.append(a)
print(list)
这样每次循环,a都去申请一块新内存地址
这样生成的list就没有错误了