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)
'Python' 카테고리의 다른 글
python 2차원 배열 시계방향으로 90도 회전하기 (0) | 2020.09.01 |
---|---|
정규식 연산 이용하기 (0) | 2020.07.13 |
python 내장함수 zip 다루기 (0) | 2020.07.10 |
(python) 1717 집합의표현 - 유니온 파인드 (0) | 2020.06.30 |
(python) 백준 균형잡힌 세상 - re 정규 연산 풀이 (0) | 2020.06.24 |