Python
python 얕은 복사 ,깊은 복사
휘휘o
2020. 7. 30. 12:46
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)