Pythonの中で浅いコピーのcopyと深いコピーのdeepcopyの簡単な理解


Pythonの深さと浅いコピーに対する個人的な分かりやすさは、複雑なPythonのデータ構造を回避して記憶することによって理解されます。
  • 高度言語の変数はメモリとアドレスの抽象的なもので、Pythoonのすべての変数は対象です。
  • 変数の格納は、参照語義の方式を採用しており、1つの変数の値に対応するアドレス情報のみが格納されている。
  • 変数の各初期化(割り当て)は、新しいコンテンツのアドレスに変数を割り当てます。
  • 複合データ構造は、各要素の記憶位置に価値がある。
  • は添削などの操作を行う時にデータ自体のidを変えないで、変えた各要素のアドレスを引用します。
  • は、同じIDを持つ変数を変更すると、他の同じIDの変数も変化します。
  • copy.co py(object)は、インナーネスト構造のアドレス参照をコピーし、インナーネスト構造が変化すると、対応する変更を浅いコピーする。
  • copy.deepcopy(object)は、変数に関するデータを完全にコピーします。他の操作とは関係ないです。
  • 例:
    
    import copy
    li = [4,5]
    lts = [1,2,3,li]
    lt_copy= copy.copy(lts)
    lt_deepcopy = copy.deepcopy(lts)
    lts.append(6)
    lt_copy.append(7)
    print(lts,lt_copy)  #  [1, 2, 3, [4, 5], 6] [1, 2, 3, [4, 5], 7]
    li.append(8)     #    li  
    print(lts,lt_copy,lt_deepcopy)
    #  [1, 2, 3, [4, 5, 8], 6] [1, 2, 3, [4, 5, 8], 7] [1, 2, 3, [4, 5]]
    #      li   ,lt_deepcopy    !
    締め括りをつける
    以上はこの文章の全部の内容です。本文の内容は皆さんの学習や仕事に対して一定の参考学習価値を持ってほしいです。ありがとうございます。もっと知りたいなら、下のリンクを見てください。