0

私は Python を初めて使用し、言語の特定の側面に問題があります。現在、特定の値を保持できる 3 次元のテーブルを作成しようとしています。

テーブル[x][y][z]

X と Y は両方とも同じ数の要素を持つように初期化され、 z は次のように空のリストになるように初期化されます

table = [[[]]*length]*length

長さ3のテーブルは次のようになります-

[[[],[],[]] , [[],[],[]] , [[],[],[]]]

x、yの特定の値で、このような特異なzリストを追加できるようにしたいと思います

table[0][2].append('S')

テーブルは次のようになります

[[[],[],['S']] , [[],[],[]] , [[],[],[]]]

しかし、それはこのように出てきます

[[['S'],['S'],['S']] , [['S'],['S'],['S']] , [['S'],[' S'],['S']]]

すべての z リストが追加されるようにします。なぜこれが起こっているのか、どうすれば修正できますか。これを非効率的に回避できますが、そうしたくありません。

4

1 に答える 1

1

ステートメント

table = [[[]]*length]*length

同じ2つの最も内側のリストへの参照を何度も何度も与えるだけです。

于 2013-09-30T00:36:10.043 に答える