# 深淺拷貝
# 無論修改哪一層 賦值的話都會修改 共享一塊記憶體空間
a = [[1, 2], 'joe', 'smith']
b = a
a[0][0] = 3
print('賦值修改第二層', a, b)
a[1] = '88'
print('賦值修改第一層', a, b)
# 拷貝的話 只會影響到第一層 第2,3...層都沒有
a = [[1, 2], 'joe', 'smith']
b = a.copy()
a[0][0] = 3
print('拷貝修改第二層', a, b)
a[1] = '88'
print('拷貝修改第一層', a, b)
# 淺拷貝 只會拷貝第一層 不會拷貝第2.3...
# 重要 b 與 b2的區別
a =
b = a # 深拷貝 共享一塊記憶體
b2 = a.copy() # 淺拷貝 只會影響到第一層
# 賦值 a指向1的位址 b也指向了1的位址(雖然是通過a,但是也是獲得最後的1的位址) 然後a又指向了2的位址
a = 1
b = a
a = 2
print(a)
print(b)
要點: python 深淺拷貝案例 python 深淺拷貝
深淺拷貝 對於 數字 和 字串 而言,賦值 淺拷貝和深拷貝無意義,因為其永遠指向同乙個記憶體位址 import copy a1 22255 a2 22255 print id a1 id a2 3428240 3428240 對於字典 元祖 列表 而言,進行賦值 淺拷貝和深拷貝時,其記憶體位址的變化...
python 深淺拷貝
建立乙個寬度為3,高度為4的陣列 mylist 0 3 4 0,0,0 0,0,0 0,0,0 0,0,0 但是當操作mylist 0 1 1時,發現整個第二列都被賦值,變成 0,1,0 0,1,0 0,1,0 0,1,0 list n n shallow copies of list concat...
python深淺拷貝
python 深淺拷貝 shallow copy 和 deep copy 對於乙個列表,列表裡面可以再放入乙個列表 1 若想複製這乙個列表,使用列表的普通的copy 方法,只能拷貝出列表裡表層的元素,而列表裡的列表卻無法拷貝,只能指向前乙個列表.修改拷貝出的列表裡列表裡的元素,原來的列表會發生改變....