重複の可能性:
Pythonで2次元配列を初期化する方法は?
2次元配列に関する簡単な問題を解決する際に、このサイトで、オーバーロード演算子を使用してPythonで1つを宣言する方法を説明する解決策に出くわしました。
例:
Myarray = [[0]*3]*3
これにより、次の配列(リスト)が生成されます
[[0,0,0],[0,0,0],[0,0,0]]
これは、使用するまでは問題ないようです。
たとえば、要素を割り当てる場合:
Myarray [0][0] = 1
予期しない出力が表示されます。
[[1,0, 0],[1,0,0] , [1,0,0]]
実際には、Myarray[1][0]とMyarray[2][0]を同時に割り当てます
私の解決策:
Myarray = [[][][]]
for i in range(0,3):
for j in range (0,3):
Myarray[i].append(0)
このソリューションは意図したとおりに機能します。
Marray[0][1] = 1
あなたにあげる
[[1,0, 0],[0,0,0] , [0,0,0]]
これを行うためのより簡単な方法はありますか?これはケンブリッジのAレベルの質問に対する解決策であり、他の言語と比較して学生にとっては長すぎるようです。