Python中列表的深淺拷貝

2022-09-12 13:33:19 字數 1198 閱讀 6077

copy_lst = [

('py物件三要素',),

('== 比較運算子',),

('is 身份運算子',),

('小資料池',),

('列表的淺拷貝',),

('列表的深拷貝',),

py物件三要素

idtype

value

== 比較運算子

通過value進行判斷

>>>a = 257

>>>b = 257

>>> a == b

true

is 身份運算子

通過id進行判斷

>>>a = 257

>>>b = 257

>>>id(a) == id(b)

false

>>>a is b

false

小資料池

**塊的快取機制

列表的淺拷貝

第一層建立新的記憶體位址

從第二層開始,指向同乙個記憶體位址

>>>lst = [1, 2, [3, 4]]

>>>copy_lst = lst.copy()

>>>lst is copy_lst

false

>>>lst[0] = 5

>>>lst[0] is copy_lst[0]

false

>>>lst[2][1] = 6

>>>lst[2] is copy_lst[2]

true

列表的深拷貝

完全獨立

改變列表任意乙個元素(無論多少層),另乙個列表都不會改變

>>>from copy import deepcopy

>>>lst = [1, 2, [3, 4]]

>>>deepcopy_lst = deepcopy(lst)

>>>lst is deepcopy_lst

false

>>>lst[0] = 6

>>>lst[0] is deepcopy_lst[0]

false

>>>lst[2][1] = 5

>>>lst[2] is deepcopy_lst[2]

false

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.型別 物件型...