1. 程式人生 > >【轉】python的淺拷貝和深拷貝

【轉】python的淺拷貝和深拷貝

end ont code append pen ron 實例 賦值 深拷貝

直接賦值:其實就是對象的引用(別名)。

淺拷貝(copy):拷貝父對象,不會拷貝對象的內部的子對象。

深拷貝(deepcopy): copy 模塊的 deepcopy 方法,完全拷貝了父對象及其子對象。

字典淺拷貝實例

>>>a = {1: [1,2,3]}
>>> b = a.copy()
>>> a, b
({1: [1, 2, 3]}, {1: [1, 2, 3]})
>>> a[1].append(4)
>>> a, b
({1: [1, 2, 3, 4]}, {1: [1, 2, 3, 4]})

深度拷貝需要引入 copy 模塊:

1 >>>import copy
2 >>> c = copy.deepcopy(a)
3 >>> a, c
4 ({1: [1, 2, 3, 4]}, {1: [1, 2, 3, 4]})
5 >>> a[1].append(5)
6 >>> a, c
7 ({1: [1, 2, 3, 4, 5]}, {1: [1, 2, 3, 4]})

【轉】python的淺拷貝和深拷貝