3

私は Python (2.5.4) でプログラムを書いていましたが、非常に異常なことが原因でコードが機能していないことに気付きました。例を挙げます:

A = [[0]*2]*2

A を印刷すると、次のようになります。

[[0, 0], [0, 0]]

それは大丈夫です。しかし今、最初の列と最初の行の要素を変更したいと思います。だから私はタイプします:

A[0][0] = 1

しかし、もう一度 A を印刷すると、次のようになります。

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

しかし、私は期待していた

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

これは私のすべてのコードを台無しにしています。なぜこれが起こっているのか、どうすれば修正できるのか知りたいです。

一方、入力すると:

B = [[0,0],[0,0]]

そして、作ります:

B[0][0] = 1

私は得る:

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

これはさらに奇妙です!行列を実装する 2 つの方法は同等ではありませんか? ゼロを含む 100x100 行列が必要な場合はどうすればよいですか? この場合、2x2 行列で [[0, 0], [0, 0]] と入力できます。しかし、それは良い解決策ではありません。

4

2 に答える 2