먼저 단순한 객체 복사는 다음과 같습니다.
original = [1, 2, 3] ------ original이라는 변수에 [1, 2, 3] 저장 copy_o = original ------ copy_o에 original 복사(shallow copy) print(copy_o) copy_o[2] = 10 ------ copy_o의 3을 10으로 값을 변경 print(copy_o) print(original)
original 값을 복사한 copy_o에서 3 값을 10으로 바꾼 결과는 다음과 같습니다.
[1, 2, 3] [1, 2, 10] [1, 2, 10]
copy_o뿐만 아니라 원래 값인 original의 3도 10으로 바뀌었습니다.
이번에는 얕은 복사에 대해 알아보겠습니다. 얕은 복사는 copy.copy()를 이용합니다.
import copy original = [[1, 2], 3] copy_o = copy.copy(original) ------ original 값을 copy_o에 얕은 복사(copy.copy( )) print(copy_o) copy_o[0] = 100 ------ copy_o의 [1, 2] 값을 100으로 변경 print(copy_o) print(original) append = copy.copy(original) append[0].append(4) ------ 첫 번째 리스트([1, 2])에 4를 추가 print(append) print(original)