Python

깊은 복사와 얕은 복사, [:]에 대해

git-sun 2024. 3. 10. 22:02

다음의 두 가지 복사에 대해 비교해봅시다

 

 

1. 얕은 복사 ; [:]가 없는 경우

a = [1, 2, 3, 4]
b = a
b[1] = 10

 

 

2. 깊은 복사 ; [:]가 있는 경우

a = [1, 2, 3, 4]
b = a[:]
b[1] = 10

 

3. 차이

  1. 얕은 복사는 주어진 변수가 동일한 객체를 참조하도록 함 
  2. 깊은 복사는 주어진 변수가 동일한 내용의 다른 객체를 참조하도록 함

 

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]

 

 

 

반응형