더북(TheBook)

먼저 단순한 객체 복사는 다음과 같습니다.

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)
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.