다음의 두 가지 복사에 대해 비교해봅시다
1. 얕은 복사 ; [:]가 없는 경우
a = [1, 2, 3, 4]
b = a
b[1] = 10
2. 깊은 복사 ; [:]가 있는 경우
a = [1, 2, 3, 4]
b = a[:]
b[1] = 10
3. 차이
- 얕은 복사는 주어진 변수가 동일한 객체를 참조하도록 함
- 깊은 복사는 주어진 변수가 동일한 내용의 다른 객체를 참조하도록 함
4. 결과
위의 코드들을 살펴보면
얕은 복사의 경우, b는 a와 동일한 객체를 참조합니다
따라서, b[1] = 10 수행 후, 변수 a를 조회하면 다음과 같습니다
변수 b를 조회하면 같은 결과를 나타냅니다
[1, 10, 3, 4]
깊은 복사의 경우, b는 a와 다른 객체를 참조합니다
따라서, b[1] = 10 수행 후, 변수 a를 조회하면 다음과 같습니다
[1, 2, 3, 4]
변수 b를 조회하면 다른 결과를 나타냅니다
[1, 10, 3, 4]
반응형