얕은 복사(copy.copy())에 대한 결과는 다음과 같습니다.
[[1, 2], 3] [100, 3] [[1, 2], 3] [[1, 2, 4], 3] [[1, 2, 4], 3]
copy_o에서 [1, 2] 값을 100으로 변경했더니 copy_o만 바뀌었습니다. 또한, [1, 2]에 4를 추가했더니 original과 copy_o 모두 반영되었습니다.
그렇다면 깊은 복사는 어떨까요? 깊은 복사는 copy.deepcopy()를 이용합니다.
import copy original = [[1, 2], 3] copy_o = copy.deepcopy(original) ------ original 값을 copy_o에 깊은 복사(copy.deepcopy()) print(copy_o) copy_o[0] = 100 ------ copy_o의 [1, 2] 값을 100으로 변경 print(copy_o) print(original) append = copy.deepcopy(original) append[0].append(4) ------ 첫 번째 리스트([1, 2])에 4를 추가 print(append) print(original)