본문 바로가기

python 얕은 복사 ,깊은 복사

2020. 7. 30.

list 형식이 데이터형을 얕은 복사를 할 때 slice 형식으로 주로 한다.

 

a = [1,2,3,4]
b = a[:]

이 때 새로운 id 값을 부여받아서, 1차원 배열일 경우에 복사한 값을 변경해도 원본 리스트 값은 변경 되지 않는다.

 

a = [[1,2,3], [3,4,5]]
b = a[:]

하지만 2차원으로 되어 있을 땐 list 자체의 id값은 다르지만 내부 복사된 리스트들은 같은 주소 값을 갖는다.

 

내부까지 다른 주소값으로 만들고 싶으면 깊은 복사를 해야한다.

 

import copy

b = copy.deepcopy(a)
댓글