얕은 복사 & 깊은 복사

발자·2022년 9월 1일
0

python

목록 보기
2/19

📚 얕은 복사

a = [1, 2]
b = a
b[0] += 1

print(a)
# [2, 2]
print(b)
# [2, 2]

a라는 변수를 b에 복사하고
b를 수정하면
a와 b에는 같은 값이 저장되어 있음을 알 수 있다.

'='을 사용해서 얕은 복사를 했기 때문이다.
얕은 복사를 하면 메모리 주소만 복사되어
결국 같은 값을 가지게 되는 것이다.

이는 immutable한 객체에는 해당되지 않고,
mutable한 객체에만 해당된다.

🔑 얕은 복사를 하는 방법

a = [1, 2]
a1 = a
a2 = a[:]
a3 = a.copy()

[:].copy()=과 다르게
한 단계 더 깊게 복사하지만
완전한 깊은 복사는 아니다.

📚 깊은 복사

깊은 복사를 하면 리스트와 내부 리스트까지 메모리 주소 값이 다르게 복사된다.

🔑 깊은 복사를 하는 방법

import copy

a = [1, 2]
b = copy.deepcopy(a)

0개의 댓글