Pythonで要素を加えていくと、リストの配列の中身が全部同じになってしまう

このミス、ひさかたPythonを触ってないとよくやってしまう.

Pythonでリストの配列のような多次元配列を作りたくて以下のようにして多次元配列を作るのだけど、こうすると要素を加えていくと、全部の要素に同じ要素が加わってしまう.

スクリーンショット 2018-05-19 9.52.40.png

上記の形でリストの配列を作ったのちに、1番目の要素に3を加えると…

スクリーンショット 2018-05-19 9.54.09.png

理由は明らかで、[[]]を5個つなげている段階で、中のリストのアドレスがコピーされてるんですね…そのため、一見5個あるように見えるリストは実は全て同じリストになっています…

なので上のような形を防ぐなら以下のような内包表記をするのがオススメです.

スクリーンショット 2018-05-19 9.56.52.png

 

About the author

コメントを残す