私は 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]] と入力できます。しかし、それは良い解決策ではありません。