깊은 복사 copy.deepcopy( 리스트 )
: 복사한 값 수정해도 기존 리스트 변경되지 않음
- 2차원 배열 복사시에는 무조건 deepcopy 사용해야함
import copy
list_A = ["ABC",["DEF","GHI"]]
list_B = copy.deepcopy(list_A)
list_B[1][0] = ["GHI"]
print(list_A, list_B)
#결과 ['ABC', ['DEF', 'GHI']] ['ABC', [['GHI'], 'GHI']]
https://black-hair.tistory.com/49
슬라이싱 이용한 복사 list[:]
- 1차원 배열에서는 깊은 복사처럼 사용되지만,
- 2차원 배열일 때 리스트 내부 리스트가 얕은 복사 상태 (내부적으로 보면 얕은 복사)
arr1 [3] 부분이 [4, 5, 6, [2, 4, 8]]
arr2[3] = [4, 5, 6, [2, 4, 8], 22]
바로 저 [2, 4, 8] 리스트인데요. 이 부분의 주소를 출력해보면
두 내부 리스트가 동일한 곳을 가리키고 있는 것을 볼 수 있다. -> 얕은 복사
'코딩테스트 > Python 개념' 카테고리의 다른 글
| 가중치 가지는 그래프 (0) | 2023.04.11 |
|---|---|
| [Python] 리스트 회전시킬때 deque.rotate() (0) | 2023.04.09 |
| [Python] 조합, 순열 리스트 말고 값으로 출력 math.comb / math.perm (0) | 2023.03.29 |
| [Python] math.factorial (0) | 2023.03.29 |
| [Python] 리스트 값 한번에 출력하기 (0) | 2023.03.25 |