リストの一部を変更させたいのに、余計なところまで変更されてしまいます。
その理由を教えてほしいです。
【入力】
Python
1a = [[0,0,0],[0,0,0],[0,0,0]] 2a[1][1]+=1 3print("a =",a) 4 5b = [[0]*3]*3 6b[1][1]+=1 7print("b =",b) 8
【期待する出力】
a = [[0, 0, 0], [0, 1, 0], [0, 0, 0]] b = [[0, 0, 0], [0, 1, 0], [0, 0, 0]] #どちらも同じ
【実際】
a = [[0, 0, 0], [0, 1, 0], [0, 0, 0]] b = [[0, 1, 0], [0, 1, 0], [0, 1, 0]] #bだけ余計なものまで1になっている
同じ[[0,0,0],[0,0,0],[0,0,0]]の真ん中を変更する作業なのに、bは余計なところまで
1に変更されています。なぜでしょうか。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/01 12:24
2018/06/01 12:29 編集