這個例子中,l4淺copy了l1,可以看出l1和l4列表內的元素記憶體位址相同,列表記憶體位址不同l1 = ['xxq',18,'male'] #定義列表l1
l2 = l1 #把l1的值引用給l2
print(l1) #輸出l1的內容
print(l2) #輸出l2的內容
print(id(l1)) #輸出l1的id
print(id(l2)) #輸出l2的id
l1[0] = 'qwe' #將l1的第乙個值改變
這個例子中,l4淺copy了l1,並且l1和l4列表中的列表元素值改變,可以看出l1和l4列表內的元素記憶體位址相同,列表記憶體位址不同
要使用深copy,要先導入庫:
import copy
然後使用
import copy
list1=[
'egon',
'lxx',
[1,2]
]list3=copy.deepcopy(list1)
# print(id(list1))
# print(id(list3))
# print(list3)
# 不可變 不可變 可變
# print(id(list1[0]),id(list1[1]),id(list1[2]))
# print(id(list3[0]),id(list3[1]),id(list3[2]))
'''4497919088 4498367856 4498449216
4497919088 4498367856 4498595328
'''# print(list3)
# print(id(list1[2][0]),id(list1[2][1]))
# print(id(list3[2][0]),id(list3[2][1]))
list1[0]='egon'
list1[1]='lxx'
list1[2][0]=111
list1[2][1]=222
# print(list1)
print(list3)
Python正課4 變數
變數就是可以變化的量,量指的是事物的狀態,比如人的年齡 性別,遊戲角色的等級 金錢等等 為了讓計算機能夠像人一樣去記憶事物的某種狀態,並且狀態是可以發生變化的 詳細地說 程式執行的本質就是一系列狀態的變化,變是程式執行的直接體現 所以我們需要有一種機制能夠反映或者說是儲存下來 name egon 定...
python 深淺拷貝案例 python 深淺拷貝
深淺拷貝 對於 數字 和 字串 而言,賦值 淺拷貝和深拷貝無意義,因為其永遠指向同乙個記憶體位址 import copy a1 22255 a2 22255 print id a1 id a2 3428240 3428240 對於字典 元祖 列表 而言,進行賦值 淺拷貝和深拷貝時,其記憶體位址的變化...
Python正課39 迭代器
l egon liu alex i 0while i len l print l i i 1s1 s1.iter l l.iter t 1,t.iter d d.iter set1 set1.iter with open a.txt mode w as f f.iter passd d iterat...