카테고리 없음

[파이썬] 리스트 복사 - 얕은 복사, 깊은 복사

O'bin 2024. 3. 20. 10:33

얕은 복사(shallow copy) - copy()

리스트 복사 시 사용하는 copy() 함수는 얕은 복사 실행

원본 값 변경 시 복사본 값도 변경됨

원본과 복사본이 같은 주소를 참조하기 때문

1
2
3
4
5
6
7
= [[1,2],3,4]
= 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
 
= [[1,2],3,4]
= 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