Shallow Copy, Deep Copy, 할당 작업 이해
일반 할당의 비효율성
일반적인 할당 작업은 새 객체를 생성하는 대신 단순히 기존 객체에 대한 참조를 생성합니다. 원래 개체에 대한 변경 사항이 복사된 개체에도 반영되므로 예상치 못한 수정이 발생할 수 있습니다.
얕은 복사본: 표면 수준 복제
얕은 복사본 copy 메소드는 새 객체를 생성하고 원본 객체에 포함된 기존 객체에 대한 참조를 삽입합니다. 이는 원본 개체의 하위 개체에 대한 변경 사항이 얕은 복사본에도 반영된다는 의미입니다.
Deep Copy: 전체 복제
깊은 복사 방법은 새 개체를 생성합니다. 원본 개체에서 찾은 개체의 복사본을 재귀적으로 삽입합니다. 이렇게 하면 원본 개체의 하위 개체에 대한 변경 사항이 전체 복사에 영향을 주지 않습니다.
변경 가능 및 불변 개체에 대한 의미
이러한 복사 작업은 다음에 대해 서로 다른 의미를 갖습니다. 변경 가능 및 불변 객체:
예
다음 코드를 고려하세요.
import copy a = "deepak" b = (1, 2, 3, 4) c = [1, 2, 3, 4] d = {1: 10, 2: 20, 3: 30} a1 = copy.copy(a) b1 = copy.copy(b) c1 = copy.copy(c) d1 = copy.copy(d)
문자열 및 튜플과 같은 불변 개체의 경우(a 및 b 이 경우) 얕은 복사본과 깊은 복사본 모두 서로 다른 메모리 주소를 가진 새 객체를 생성합니다. 그러나 목록 및 사전(c 및 d)과 같은 변경 가능한 개체의 경우 얕은 복사본은 원본 개체에 대한 새로운 참조를 생성하는 반면, 깊은 복사본은 이러한 개체의 새 인스턴스를 생성합니다.
위 내용은 Python의 얕은 복사와 깊은 복사: 언제 어느 것을 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!