> 백엔드 개발 > 파이썬 튜토리얼 > 파이썬에서 깊은 복사본과 얕은 복사본의 차이점

파이썬에서 깊은 복사본과 얕은 복사본의 차이점

爱喝马黛茶的安东尼
풀어 주다: 2022-06-08 14:09:22
원래의
3548명이 탐색했습니다.

Python에서 객체 할당은 실제로 객체에 대한 참조입니다. 객체가 생성되어 다른 변수에 할당되면 Python은 객체를 복사하지 않고 객체에 대한 참조만 복사합니다.

파이썬에서 깊은 복사본과 얕은 복사본의 차이점

얕은 복사: 가장 바깥쪽 개체 자체가 복사되고, 내부 요소는 참조와 함께 복사됩니다. 즉, 개체는 한 번 복사되지만 개체에서 참조되는 다른 개체는 복사되지 않습니다.

딥 카피: 주변 요소와 내부 요소 모두 참조가 아닌 개체 자체를 복사합니다. 즉, 해당 개체가 한 번 복사되고 해당 개체에서 참조되는 다른 개체도 복사됩니다.

깊고 얕은 복사본의 역할

1, 메모리 사용량을 줄이고
2 데이터를 정리합니다. 향후 데이터를 수정하거나 저장할 때에는 데이터 수정 후 원본 데이터를 찾을 수 없도록 원본 데이터의 복사본을 만들어 두시기 바랍니다.

관련 권장사항: "Python 비디오 튜토리얼"

얕은 복사(복사): 상위 개체를 복사하고 내부 하위 개체는 복사하지 않습니다. 객체 객체.

딥카피(deepcopy): 복사 모듈의 딥카피 방식은 상위 객체와 그 하위 객체를 완전히 복사합니다.

>>>a = {1: [1,2,3]}
>>> b = a.copy()
>>> a, b({1: [1, 2, 3]}, {1: [1, 2, 3]})
>>> a[1].append(4)
>>> a, b({1: [1, 2, 3, 4]}, {1: [1, 2, 3, 4]})
로그인 후 복사

깊은 복사에는 복사 모듈 도입이 필요합니다:

>>>import copy
>>> c = copy.deepcopy(a)
>>> a, c({1: [1, 2, 3, 4]}, {1: [1, 2, 3, 4]})
>>> a[1].append(5)
>>> a, c({1: [1, 2, 3, 4, 5]}, {1: [1, 2, 3, 4]})
로그인 후 복사

1. b = a.copy(): 얕은 복사, a와 b는 독립적인 개체이지만 하위 개체는 여전히 통합 개체를 가리킵니다(참조임).

파이썬에서 깊은 복사본과 얕은 복사본의 차이점

2.b = copy.deepcopy(a): 깊은 복사, a와 b는 상위 개체와 하위 개체를 완전히 복사합니다. 독립적인.

파이썬에서 깊은 복사본과 얕은 복사본의 차이점

위 내용은 파이썬에서 깊은 복사본과 얕은 복사본의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿