Python

[Python] 깊은 복사(deep copy)

김뮤즈 2019. 1. 24. 12:28


python에서 리스트 재할당(b = a)을 통해 복사되는 값은 실제 값이 아니라 주소이므로, 

원본 a의 값을 변경하면 재할당된 b에서도 변경되는 것을 볼 수 있음

(얕은 복사: shallow copy)


따라서 별도의 객체를 다루는 것이 필요할때 깊은 복사(deep copy)를 이용


import copy

a = [1, 2, 3, 4]

b = copy.deepcopy(a)

a.append(5)

print(a)

print(b)


결과


[1, 2, 3, 4, 5]

[1, 2, 3, 4]