Shallow copy
In the following code, B
is a shallow copy of A
.
A = [[1], [2]]
B = A[:]
A = [[1], [2]]
B = A.copy()
B[0] = 3
print(A)
print(B)
[[1], [2]]
[3, [2]]
A = [[1], [2]]
B = A.copy()
B[0].append(42)
print(A)
print(B)
[[1, 42], [2]]
[[1, 42], [2]]
import copy
A = [[1], [2]]
B = copy.copy(A)
B[0].append(42)
print(A)
print(B)
[[1, 42], [2]]
[[1, 42], [2]]
Deep copy
import copy
A = [[1], [2]]
B = copy.deepcopy(A)
B[0].append(42)
print(A)
print(B)
[[1], [2]]
[[1, 42], [2]]
Special functions
Shallow copy and deep copy can be respectively user-defined by special functions __copy__
and __deepcopy__
.