728x90
1. 옅은 복사
a=[1,2,3]
b=a #옅은 복사
print(b) #결과 : [1,2,3]
a.append(4)
print(b) #결과 : [1,2,3,4]
일반 대입방식으로 배열을 선언한다면 옅은 복사가 이루어진다.
위의 경우 b = a 로 b의 배열을 생성하지만 a가 변하면 b의 값도 변한다!!
하지만 대부분이 저렇게 변하지 않게 생성을 원한다.
그럴 경우, 깊은 복사를 해야한다
2.깊은 복사
import copy
a=[1,2,3]
b=copy.deepcopy(a) #깊은 복사
a.append(4)
print(a) #결과 : [1,2,3,4]
print(b) #결과 : [1,2,3]
copy.deepcopy를 사용하면 a 배열이 변해도 b 배열이 변하지 않는다.
여러분이 원하는 복사가 바로 이것!!
728x90
'Python' 카테고리의 다른 글
[Python] 큐(Queue) 구현 예제 (0) | 2020.10.10 |
---|---|
[Python] 리스트 특정 원소 모두 지우기 (0) | 2020.09.13 |
[Python] 반복문에서 문자열의 순서와 문자열 출력하는 방법 (0) | 2020.04.18 |
[Python] 부분 문자열이 여러번 포함 될 경우 탐색 방법 (0) | 2020.04.04 |
[Python] List 원소 추가 방법 (여러가지) (0) | 2020.04.04 |