#_*_coding:utf-8_*_
import copy
'''在python中物件的賦值其實就是物件的引用。當建立乙個物件,把它賦值給另乙個變數的時候,python並沒有拷貝這個物件,
只是拷貝了這個物件的引用而已。淺拷貝:拷貝了最外圍的物件本身,內部的元素都只是拷貝了乙個引用而已。
也就是,把物件複製一遍,但是該物件中引用的其他物件我不複製.深拷貝:外圍和內部元素都進行了拷貝物件本身,而不是引用。
也就是,把物件複製一遍,並且該物件中引用的其他物件我也複製'''
print("*****第一種『=』的淺拷貝")
a = [1,2,3]
b = a
print(a,b)
print(id(a),id(b))
print("*****第二種『cpoy()』的淺拷貝")
a = [1,2,3]
b = a.copy()
print(a,b)
print(id(a),id(b))
#呼叫深拷貝時需要匯入copy函式
print("*****'deepcopy'深拷貝")
a = [1,2,3]
b = copy.deepcopy(a)
print(a,b)
print(id(a),id(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 方法,只能拷貝出列表裡表層的元素,而列表裡的列表卻無法拷貝,只能指向前乙個列表.修改拷貝出的列表裡列表裡的元素,原來的列表會發生改變....