>백엔드 개발 >파이썬 튜토리얼 >Python 사전의 얕은 복사본을 업데이트해도 원본이 변경되지 않는 이유는 무엇입니까?

Python 사전의 얕은 복사본을 업데이트해도 원본이 변경되지 않는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-24 06:37:10695검색

Why Doesn't Updating a Shallow Copy of a Python Dictionary Change the Original?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.