copy_lst = [
(`py物件三要素`,),
(`== 比較運算子`,),
(`is 身份運算子`,),
(`小資料池`,),
(`列表的淺拷貝`,),
(`列表的深拷貝`,),
]
py物件三要素
id
type
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