トップ 一覧 検索 ヘルプ RSS ログイン

ディクショナリーのコピー.pyの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
{{category Python}}

 import copy
 
 shallowly_copied_dict = copy.copy(original_dict)
 deeply_copied_dict = copy.deepcopy(original_dict)

deepcopyは、リストやディクショナリーの値が可変オブジェクトのときに、オブジェクトをコピーしたい場合に使う。
deepcopyは、リストやディクショナリーの値が可変オブジェクトのときに、その値となっている可変オブジェクトもコピーしたい場合に使う。

浅いコピーだと、「可変オブジェクトへの参照」が値としてセットされるので、shallowly_copied_dict内の可変オブジェクトを変更すると、oribinal_dict内の値まで変わってしまい(逆も真)、びっくりする。