>백엔드 개발 >파이썬 튜토리얼 >Python에서 얕은 복사와 깊은 복사는 어떻게 다릅니까?

Python에서 얕은 복사와 깊은 복사는 어떻게 다릅니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-07 05:22:03757검색

How do Shallow and Deep Copying Differ in Python?

Python에서 객체 복사

객체의 독립적인 복사본을 만드는 것은 프로그래밍에서 일반적인 작업입니다. Python에서 객체를 복사하는 방법에는 얕은 복사와 깊은 복사의 두 가지 주요 방법이 있습니다.

얕은 복사

Python의 기본 복사 메커니즘은 얕은 복사입니다. 이는 원래 개체와 동일한 필드에 대한 참조를 사용하여 새 개체가 생성됨을 의미합니다. 새 객체의 필드에 대한 모든 변경 사항은 원본 객체에도 반영됩니다.

심층 복사

반면, 심층 복사는 새로운 객체를 생성합니다. 원본 개체와 별도의 필드 복사본이 있는 개체입니다. 즉, 새 개체의 필드에 대한 변경 사항은 원본 개체에 영향을 주지 않습니다.

Python에서 개체의 완전히 독립적인 복사본을 얻으려면 복사본을 사용할 수 있습니다. .deepcopy() 함수. 예는 다음과 같습니다.

<code class="python">import copy

# Original object
obj = {
    "name": "Alice",
    "age": 20
}

# Create a shallow copy
shallow_copy = obj

# Create a deep copy
deep_copy = copy.deepcopy(obj)

# Modify the shallow copy
shallow_copy["name"] = "Bob"

# Print the original and deep copy
print(obj)  # Output: {'name': 'Bob', 'age': 20}
print(deep_copy)  # Output: {'name': 'Alice', 'age': 20}</code>

보시다시피 deep_copy는 개체의 원래 값을 유지하는 반면,shallow_copy는 원본 개체에 대한 변경 사항의 영향을 받습니다.

위 내용은 Python에서 얕은 복사와 깊은 복사는 어떻게 다릅니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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