4

私はプログラミングが初めてで、修正できないこの基本的な問題があります。できるだけ単純化しました。この単純化されたバージョンでは、空のリストを繰り返し処理しています。「対称行列」にインデックスを格納したいだけです。

n = 2
B = [[None] * n] * n
print B, "\n"
for i in range(n):
    for j in range(n):
        B[i][j] = [i, j]
        print B

最初は、リストは次のようになります。

[[None, None], [None, None]] 

トラフをループした後、出力は次のようになると思います。

[[[0, 0], None], [None, None]]
[[[0, 0], [0, 1]], [None, None]]
[[[1, 0], [0, 1]], [[1, 0], None]]
[[[1, 0], [1, 1]], [[1, 0], [1, 1]]]

代わりに、私はこれを取得します:

[[[0, 0], None], [[0, 0], None]]
[[[0, 0], [0, 1]], [[0, 0], [0, 1]]]
[[[1, 0], [0, 1]], [[1, 0], [0, 1]]]
[[[1, 0], [1, 1]], [[1, 0], [1, 1]]]

私は何が欠けていますか?助けてくれてありがとう...

4

4 に答える 4