Python中的拷貝與深淺拷貝

2022-04-26 06:51:24 字數 1015 閱讀 6934

即為賦值.舉個例子

a = 147147

b = a # 賦值

print(a is b) # true

對於淺拷貝,字典、列表、元組等型別,它們只拷貝第一層位址

import copy

n1 =

n3 = copy.copy(n1) # 淺拷貝

print(id(n1))

print(id(n3))

print(id(n1["k3"]))

print(id(n3["k3"]))

結果6516024

6516096

36995720

36995720

第一層的n1和n3指向的記憶體位址已經改變了,但是第二層的列表並沒有拷貝成功,它的記憶體位址還是一樣的,所以當n3第二層的列表進行修改的時候,n1裡的列表也會被修改.

原理如下

n4 = copy.deepcopy(n1) # 深拷貝

print(id(n1))

print(id(n4))

print(id(n1["k3"]))

print(id(n4["k3"]))

結果:

31157560

35463600

35947144

35947336

結論:記憶體位址都改變了,有幾層巢狀就改變幾層巢狀,很牛逼的乙個拷貝,都是引用的n1的裡面的值

原理如下:

python中深淺拷貝

先弄懂下面概念 變數 引用 物件 可變物件,不可變物件 切片 拷貝 淺拷貝,深拷貝 變數是乙個系統表的元素,擁有指向物件的鏈結的空間 物件是被分配的一塊記憶體,儲存其所代表的值 引用是自動形成的從變數到物件的指標 在python中不可變物件知 一旦建立就不可修改物件,包括字元創,元組,數字 在pyt...

Python 中的深淺拷貝

python 中的物件之間賦值時,時按照引用傳遞,如果需要拷貝物件 需要使用標準庫中的copy模組 1.copy.copy淺拷貝 只拷貝父物件,不會拷貝物件的內部的子物件 2.copy.deepcopy深拷貝 拷貝物件及其子物件 示例 encoding utf 8 import copy a 1,2...

python中的深淺拷貝

深淺拷貝 定義 1.淺拷貝 拷貝了最外層的物件,內部的元素只拷貝了乙個引用 2.深拷貝 外層的物件和內部的元素都拷貝 賦值 了一遍 術語 1.變數 是乙個系統表的元素,擁有指向物件的連線空間 2.物件 會在記憶體中占用一塊空間 3.引用 是自動形成的從變數到物件的指標 首位址,引用 4.型別 物件型...