프로그래밍 언어/Python

얕은복사와 깊은복사

ruby-jieun 2023. 1. 9. 21:36

 

 

얕은복사와 깊은복사

 


얕은복사

얕은 복사한 변수는 같은 주소를 가리킨다.

a = [1, 2, 3]
b = a # a와 같은 주소를 가리킨다

a의 특정 원소를 변경하면 b도 마찬가지로 변경된 값을 가진다.

a의 특정 원소를 변경하는 것이 a가 가리키는 주소 변경을 일으키지 않기 때문이다.

a[1] = 100
print(b) # b와 a는 여전히 같은 주소를 가리킨다

>>> [1, 100, 3]

 

 

 

깊은복사

깊은 복사한 변수는 똑같은 값을 가지는 새로운 객체의 주소를 가리킨다.

import copy
a = [1, 2, 3]
b = copy.deepcopy(a) # 새로운 [1, 2, 3] 주소를 가리킨다