Python中的賦值與淺複製與深複製之間
- 2020 年 1 月 20 日
- 筆記
#賦值與淺複製一層列表
""" a = [1, 2] b = a #賦值 c = a.copy() #淺複製 a.append(3) print(b) #父對象改變 print(c) #父對象不變 ''' [1, 2, 3] [1, 2] ''' """
#賦值與淺複製二層列表
""" a = [1,2,[1,2]] b = a #賦值 c = a.copy() #淺複製 a[-1].append(3) a.append(3) print(b) #父對象該變 賦值 print(c) #父對象該變 淺複製 ''' [1, 2, [1, 2, 3], 3] [1, 2, [1, 2, 3]] ''' """
#淺複製與深複製一層列表
""" import copy a = [1, 2] b = copy.copy(a) #淺複製 c = copy.deepcopy(a) #深複製 a.append(3) print(b) #父對象不變 淺複製 print(c) #父對象不變 深複製 ''' [1, 2] [1, 2] ''' """
#淺複製與深複製二層列表
""" a = [1,2,[1,2]] b = copy.copy(a) #淺複製 c = copy.deepcopy(a) #深複製 a[-1].append(3) print(b) #父對象該變 淺複製 print(c) #父對象不變 深複製 ''' [1, 2, [1, 2, 3]] [1, 2, [1, 2]] ''' """
#一層列表中,賦值會改變父對象 ,淺複製和深複製不會改變父對象。 #二層列表中,賦值會改變父對象(內外都變),淺複製會改變內層父對象,深複製不會改變內層父對象。