python的賦值 深拷貝與淺拷貝

2021-09-24 09:21:11 字數 1254 閱讀 4162

a=[1,2,3,6,45,[12,56,69]]

b=aprint(a)

print(b)

print('*****************************這是一段賦值******************************')

輸出結果:

e:\install\python3.7.3\python.exe f:/pycharm_workspace/day01/copydemo.py

[1, 2, 3, 6, 45, [12, 56, 69, 'b'], 'a']

[1, 2, 3, 6, 45, [12, 56, 69, 'b'], 'a']

process finished with exit code 0

#2、淺拷貝

a=[1,2,3,6,45,[12,56,69]]

b=copy.copy(a)

print(a)

print(b)

print('*****************************這是一段淺拷貝******************************')

輸出結果:e:\install\python3.7.3\python.exe f:/pycharm_workspace/day01/copydemo.py

[1, 2, 3, 6, 45, [12, 56, 69, 'b'], 'a']

[1, 2, 3, 6, 45, [12, 56, 69, 'b']]

*****************************這是一段淺拷貝******************************

##深拷貝

a=[1,2,3,6,45,[12,56,69]]

b=copy.deepcopy(a)

print(a)

print(b)

print('*****************************這是一段深拷貝******************************')

輸出結果:e:\install\python3.7.3\python.exe f:/pycharm_workspace/day01/copydemo.py

[1, 2, 3, 6, 45, [12, 56, 69, 'b'], 'a']

[1, 2, 3, 6, 45, [12, 56, 69]]

*****************************這是一段深拷貝******************************

js 淺拷貝直接賦值 js的賦值與淺拷貝 深拷貝

昨天翻了下陣列api,看到concat和slice方法,突然想到這個兩個方法是淺拷貝還是深拷貝,結果陷入了死胡同,為什麼mdn文件說是淺拷貝,但進行簡單的操作為什麼能複製成功啊,糾結半天後才弄清原由,原來我一直把賦值和深淺拷貝搞混了。首先不要把引用型別的賦值歸結為淺拷貝,深拷貝和淺拷貝只針對像 ob...

Python 賦值 淺拷貝 深拷貝

賦值 a b,只拷貝了物件的引用,沒有拷貝內容。兩個物件的id一樣 淺拷貝 copy.copy 構造乙個新的復合物件,然後將子物件引用插入到原始物件的副本中。深拷貝 copy.deepcopy 構造乙個新的復合物件,然後遞迴地將子物件副本插入原始物件的副本。給個栗子 從這個栗子可以看出,對c進行修改...

python賦值 淺拷貝 深拷貝

視覺化 首先了解知識點 可變 list,dict 和不可變 string,int,tuple 淺拷貝 對於string int來說沒有意義,因為它們資料就一層,對於tuple由於是不可變型別所以新的物件會指向原來的物件位址,對於list和dict,新的物件會在記憶體中開闢乙個新的記憶體空間,並且只拷...