Copy
list_A = ["ABC","DEF"]
list_B = list_A
- 리스트는 1개만 존재하지만 2가지의 이름으로 가리키는 것
- B를 수정했지만 A에도 반영된다.
list_A = ["ABC","DEF"]
list_B = list_A
list_B.append("GHI")
print(list_A)
https://black-hair.tistory.com/49
얕은 복사 4가지 방법
1. 슬라이싱
list1 = [1, 2, 3, 4]
list2 = list1[:]
2. list() 함수
list1 = [1, 2, 3, 4]
list2 = list(list1)
3. copy() 메소드
list1 = [1, 2, 3, 4]
list2 = list1.copy()
4. 리스트 연산
list1 = [1, 2, 3, 4]
list2 = [] + list1
깊은 복사
- 객체의 변형성에 따라서 불변형 객체는 그대로 가져오고 변형 객체는 새로운 공간에 값을 복사하여 가져오게 되는 것
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']]