2

Pythonのこの2つのコードの違いは何ですか:

white=[2,4,8,9]
black = white

white=[2,4,8,9]
black = white[:]

どうもありがとうございます。

4

3 に答える 3

5

とを使用id()isて、Python シェルの違いを確認できます。

>>> white=[2,4,8,9]
>>> black = white
>>> id(white)
41026064
>>> id(black)
41026064
>>> black is white
True

blackwhite同じオブジェクトを指すので、それらは 2 つではなく 1 つです。スライス (または浅い) コピーを作成すると、新しいオブジェクトが作成されます。

>>> white=[2,4,8,9]
>>> black = white[:]
>>> id(white)
41026064
>>> id(black)
41025904
>>> black is white
False
于 2013-07-13T15:55:28.027 に答える
0

追加のデータ ポイントとして、Python 3.3 ではcopy、スライス構文の読み取り可能な代替手段としてメソッドが追加されました。そのwhite.copy()ため、リストの浅いコピーも作成しますwhite

于 2013-07-13T16:02:16.630 に答える