寫了一段代碼
ranges=dict = {"x" : 1236, "y" : 234, "z" : 2345}
list=[]
a={}
for item in ranges:
a = item
list.append(a)
print(list)
發(fā)現(xiàn)list全部變成了最后一個元素
原因在于
dict是可變變量是钥,當在循環(huán)外創(chuàng)建dict時,申請了一塊地址
而當list.append時缅叠,append的是引用了當前的這塊內(nèi)存
每次循環(huán)悄泥,我們都對內(nèi)存中的數(shù)值進行了改變,
list的每個元素都會改變肤粱,因為他們引用了同一個地址
所以我們把代碼改成這樣
ranges=dict = {"x" : 1236, "y" : 234, "z" : 2345}
list=[]
for item in ranges:
a={}
a = item
list.append(a)
print(list)
這樣每次循環(huán)弹囚,a都去申請一塊新內(nèi)存地址
這樣生成的list就沒有錯誤了