얕은 복사(shallow copy) - copy()
리스트 복사 시 사용하는 copy() 함수는 얕은 복사 실행
원본 값 변경 시 복사본 값도 변경됨
원본과 복사본이 같은 주소를 참조하기 때문
1
2
3
4
5
6
7
|
x = [[1,2],3,4]
y = x.copy() # x를 y로 얕은복사
print(f'y = {y}')
x[0][1] = 7 # x배열의 값 2를 7로 수정
print(f'x = {x}')
print(f'y = {y}')
|
cs |
깊은 복사(deep copy) - copy.deepcopy()
copy 모듈의 deepcopy() 함수 사용
참조값 뿐만 아니라 참조하는 객체 자체를 복사
원본 수정해도 복사본에 영향 X
1
2
3
4
5
6
7
8
9
|
import copy
x = [[1,2],3,4]
y = copy.deepcopy(x) # x를 y로 얕은복사
print(f'y = {y}')
x[0][1] = 7 # x배열의 값 2를 7로 수정
print(f'x = {x}')
print(f'y = {y}')
|
cs |