前提・実現したいこと
python3.8 配列の構造を理解したい
以下のようにコーディングをしました
A=[[False]*2 for _ in range(2)]
B=[[False]*2]*2
print(A,B)
A[1][1]=True
B[1][1]=True
print(A,B)
発生している問題・エラーメッセージ
一回位目のprint出力の結果、Trueを代入する以前ではAとBは同じものでした。
[[False, False], [False, False]] [[False, False], [False, False]]
[[False, False], [False, False]] [[False, False], [False, False]]
同じ代入の後
二回目のprint出力では異なる結果が出力されました。
[[False, False], [False, False]] [[False, False], [False, False]]
[[False, False], [False, True]] [[False, True], [False, True]]
なぜこのように異なった結果になるのか分からないので理解したいです。
該当のソースコード
前述のとおり
試したこと
代入の前に
if A==B:print(1)
を追記したところ
1が出力されたことから、代入前はA==Bであることがわかりました
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー