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

Susan Sarandon
リリース: 2024-11-07 05:22:03
オリジナル
604 人が閲覧しました

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!