ホームページ > バックエンド開発 > Python チュートリアル > Python 辞書のコピーを変更すると、元の辞書も変更されるのはなぜですか?

Python 辞書のコピーを変更すると、元の辞書も変更されるのはなぜですか?

DDD
リリース: 2024-12-23 09:04:34
オリジナル
438 人が閲覧しました

Why Does Modifying a Python Dictionary Copy Also Change the Original?

Python での辞書のコピーについて

Python では、値のコピーに関して辞書の操作が混乱する可能性があります。この記事では、辞書のコピーを変更した結果、元の辞書も変更されていたことが判明するときに発生する一般的な問題について説明します。

この動作を理解するには、Python が暗黙的なオブジェクトのコピーを実行しないことを理解することが重要です。 dict2 = dict1 を割り当てる場合、新しい辞書オブジェクトは作成されません。同じ既存の辞書への別の参照を作成しているだけです。したがって、dict2 に加えられた変更は、両方とも同じ基になるデータ構造を参照するため、dict1 に直接影響します。

この動作を回避して辞書を実際にコピーするには、新しい辞書オブジェクトを明示的に作成する必要があります。これは 2 つのメソッドで実現できます。

  • dict() の使用: dict() コンストラクターは既存の辞書を引数として受け取り、すべての辞書のコピーを含む新しい辞書オブジェクトを返します。キーと値

例:

dict2 = dict(dict1)
ログイン後にコピー
  • copy() の使用: 辞書の copy() メソッドの表面的なコピーを使用して新しい辞書オブジェクトを作成します。 original.

例:

dict2 = dict1.copy()
ログイン後にコピー

これらの手法を使用すると、dict2 に加えられた変更が元の dict1 に影響を与えないようにすることができ、コピーされたバージョンを操作しながら、元の辞書の状態を保持します。

以上がPython 辞書のコピーを変更すると、元の辞書も変更されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート