ロゴ
PythonでN次元配列を作ろう
やりたいこと
Pythonを使って次元の数と辺の長さを入れればその配列を出力するプログラムを作りたい。
今回は一辺の長さがN、D次元の配列とする。

とりあえず作ってみる
最初に考えたプログラムはこんな感じ。

しかし、実際にfields[0][0][0]に1を代入すると、なぜか1がそれ以外の場所にも増殖してしまう。これでは使い物にならない。
説明は面倒なので詳しいことは省くが、簡単に言うと値を代入する際にそのアドレス(住所)まで渡しているために起こる。
詳細は以下の記事に投げます。
Pythonの二次元配列の罠【配列のコピー】open_in_new

それではどうする?
以下が正しいプログラムです。

これで一件落着。うれしいね。

共有