Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。156件2Pythonで隣接行列を表現しようとしたら2次元配列が期待と異なる挙動をしてしまったため、どういう理由でこういう挙動になったのか?どうするのがよいのか?の二点を質問させてください。やりたいこと無向グラフを隣接行列で表現したい。リンクが有るところは1で、ないところは0にしたい。最初にノードの数がわかるので、0で2次元配列Aを初期化したい。初期化の方法で下記のAのような方法をとった。0]]となってくれて期待通りに動いてくれます。これだとノードの数がわかっても動的に隣接行列を初期化できないためこの方法はとりたくない。個の銅バッジFAQなので、検索すればこの辺の記事とか見つかりますよ。3と言うのは、ほぼ次のようなコードと等価だと言えば少し理解しやすくなるでしょうか。[b,b,b]Pythonのリストは参照で保持されます。A[2]のどれもが同じリストを参照することになるのです。こんな書き方をすると、お望みの動作になると思います。range(3)]でも良い(*が評価されるたびに新しいリストを作るため)んですが、少し分かりにくいかもしれません。|1以下のようにfor文等でappendを必要な回数繰り返されたらどうでしょうか?※すみません、pythonらしい書き方を知りません。※提示されているAとBの様子(構造)の違いを表示させたかったのですが、当然、typeではどうにもならず。追記:以下のようにid()関数で、確認できるようです。A[0]とA[1]は、同じものである、idが同じであることがわかります。イミュータブル等の説明で、こうなることは、一部、納得できる。id(A[1])1639979327816>>>参考:https://qiita.com/utgwkk/items/5ad2527f19150ae33322※元の現象は、listの__mul__()のコードを見れば理解できるのかもしれません。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。