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

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

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

How do Shallow and Deep Copying Differ in Python?

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

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

浅いコピー

Python のデフォルトのコピー メカニズムは浅いコピーです。これは、元のオブジェクトと同じフィールドへの参照を使用して新しいオブジェクトが作成されることを意味します。新しいオブジェクトのフィールドに加えられた変更は、元のオブジェクトにも反映されます。

ディープ コピー

一方、ディープ コピーでは、新しいオブジェクトが作成されます。元のオブジェクトからのフィールドの別のコピーを持つオブジェクト。これは、新しいオブジェクトのフィールドに加えられた変更が元のオブジェクトに影響を与えないことを意味します。

Python でオブジェクトの完全に深い独立したコピーを取得するには、コピーを使用できます。 .deepcopy() 関数。以下に例を示します。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

<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 までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート