ホームページ  >  記事  >  バックエンド開発  >  Python における浅いコピーと深いコピーはどのように異なりますか?

Python における浅いコピーと深いコピーはどのように異なりますか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-07 05:22:03605ブラウズ

How do Shallow and Deep Copying Differ in Python?

Python でのオブジェクトのコピー

オブジェクトの独立したコピーを作成することは、プログラミングにおける一般的なタスクです。 Python では、オブジェクトをコピーする主な方法として、浅いコピーと深いコピーの 2 つの方法があります。

浅いコピー

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。