[Python]多重配列の一部を変更しようとしたら、全ての列において変更されてしまって困った

   2019/02/04

多重配列を作ったら、以下のように配列の中身がへんてこになってしまった。

コレ、5つの[0, 0, 0]がaの中にあるように見えるけど、実は1つの[0, 0, 0]が実体として存在しているだけで、どの要素も同じ[0, 0, 0]を指しているっていう状況になっている。
結果、a[1][1]の値を1に書き換えたとしても、5つの要素は変わらず同じ[0, 1, 0]を参照するから、上のようなへんてこな結果になるというわけだ。

まぁ詳しい説明は下の参考リンクに任せるとして、正しく多重配列を作成するためには以下のようにリスト内包表記を使えばよい。

タイトルとURLをコピーしました

この記事へのコメントはこちら

メールアドレスは公開されませんのでご安心ください。
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメント送信」ボタンを押してください。

one × 1 =

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください