Shallow Copy Dictionary가 원본을 업데이트하지 않는 이유
데이터 구조를 다룰 때 복사의 뉘앙스를 이해하는 것이 중요합니다. Python은 얕은 복사와 깊은 복사라는 두 가지 기본 복사 방법을 제공합니다. 이 기사에서는 이러한 기술의 차이점을 자세히 살펴보고, 특히 얕은 복사본을 업데이트해도 원본 사전에 영향을 주지 않는 이유를 조사합니다.
Python의 얕은 복사본
dict.copy() 사전의 얕은 복사본을 수행합니다. 즉, 동일한 콘텐츠에 대한 새 참조를 생성합니다. 내용은 값으로 복제되지 않고 대신 동일한 메모리 참조를 공유합니다.
예를 고려하세요.
original = dict(a=1, b=2) new = original.copy() new.update({'c': 3})
얕은 복사 후에 새 참조(new)에 대한 모든 변경 사항은 동일한 기본 데이터를 가리키기 때문에 원래 사전(원본)을 변경합니다. 예에서 얕은 복사에 'c': 3을 추가하면 원본 사전도 업데이트됩니다.
깊은 복사와 얕은 복사의 이해
얕은 복사만 생성되는 경우 기존 데이터에 대한 새로운 참조, 심층 복사는 완전히 새로운 객체를 생성합니다. 내용은 재귀적으로 복제됩니다. 이렇게 하면 새 참조에 대한 수정 사항이 원본에 영향을 주지 않습니다.
copy.deepcopy()를 사용하면 전체 복사가 수행됩니다. 이 경우 새 참조(c)에 대한 변경 사항은 원래 사전(a)에 영향을 주지 않습니다.
결론
Python에서 얕은 복사에는 새 참조를 생성하는 작업이 포함됩니다. 기존 데이터를 참조하는 반면, 딥 카피는 중복된 내용으로 완전히 새로운 객체를 생성합니다. 이 차이점을 이해하는 것은 복잡한 데이터 구조를 다룰 때 필수적입니다. 왜냐하면 한 객체에 대한 수정이 다른 객체에 어떤 영향을 미치는지 결정하기 때문입니다.
위 내용은 Python 사전의 얕은 복사본을 업데이트해도 원본이 변경되지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!