­

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]] ''' """

#一層列表中,賦值會改變父對象 ,淺複製和深複製不會改變父對象。 #二層列表中,賦值會改變父對象(內外都變),淺複製會改變內層父對象,深複製不會改變內層父對象。