前提・実現したいこと
pythonのリストについて質問です。以下の2つのプログラムは同じことを表していると思うのですが、どうして出力が違うのでしょうか。どちらも3×3行列を生成してある要素に代入をしています。1つ目のプログラムは2行1列目だけ代入されていますが、2つ目のプログラムは全行の1列目に代入されています。調べてもわからず、Python初学者のため勉強不足なところがありますが、わかる方は教えていただけると幸いです。また2つめのプログラムのように行数と列数を変数で与えて1つ目のプログラムのような出力を出す方法はありますか。(numpyを使えばできたので、numpyを使わない方法でお願いします。)
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
#1つ目のプログラム a = [["","",""],["","",""],["","",""]] a[2][1] = "a" print(a) # (出力) -> [['', '', ''], ['', '', ''], ['', 'a', '']] #2つ目のプログラム a = [[""] * 3] * 3 a[2][1] = "a" print(a) #(出力) -> [['', 'a', ''], ['', 'a', ''], ['', 'a', '']]
試したこと
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/14 09:16