[python] copy 라이브러리

이도원·2022년 11월 8일
0

python은 대입문에서 객체를 복사하지 않고 대상이 객체의 주소를 가르킴

  • 얕은 복사는 새로운 복합 객체를 만들고, 원본 객체를 가리키는 참조를 새로운 복합 객체에 삽입

  • 깊은 복사는 새로운 복합 객체를 만들고,재귀적으로 원본 객체의 사본을 새로 만든 복합 객체에 삽입

  • mutable은 요소가 변경되도 주소가 안 바뀌기 때문에 둘다 같이 바뀜

  • immutable은 요소가 변경되면 새로 할당 되기 때문에 안 바뀜

-- 리스트 안의 리스트 mutable객체 안의 mutable객체인 경우 얕은 복사시 객체주소는 다르나 객체 내부 요소의 주소는 같을 수 있음
-- id(객체)를 통해 동일한 주소 값을 가지고 있는지 확인 가능

import copy
list2 = copy.deepcopy(list1) #깊은 복사
copy.copy(list) / list.copy() / list[:] # 등 거의 다른 모든 복사는 얕은 복사이다.

참고

https://wikidocs.net/16038

공식문서

https://docs.python.org/ko/3/library/copy.html?highlight=copy#module-copy

profile
studying

0개의 댓글