Pythonのこの2つのコードの違いは何ですか:
white=[2,4,8,9]
black = white
と
white=[2,4,8,9]
black = white[:]
どうもありがとうございます。
とを使用id()
しis
て、Python シェルの違いを確認できます。
>>> white=[2,4,8,9]
>>> black = white
>>> id(white)
41026064
>>> id(black)
41026064
>>> black is white
True
black
とwhite
同じオブジェクトを指すので、それらは 2 つではなく 1 つです。スライス (または浅い) コピーを作成すると、新しいオブジェクトが作成されます。
>>> white=[2,4,8,9]
>>> black = white[:]
>>> id(white)
41026064
>>> id(black)
41025904
>>> black is white
False
追加のデータ ポイントとして、Python 3.3 ではcopy
、スライス構文の読み取り可能な代替手段としてメソッドが追加されました。そのwhite.copy()
ため、リストの浅いコピーも作成しますwhite