前提・実現したいこと
pythonの2次元配列の作成についての質問です.
ソースコードにあるように a ,b ,c 以下のように出力されます
aの方法はa[0][1]を変更すると全てに適応されます
bの方法はa[0][1]だけをしっかり変更してくれます
cの方法はa[0]だけをしっかり変更してくれます
なぜaは全てに適応されてしまうんでしょうか?
逆にcではなぜうまくいくのでしょうか?
気になって夜も寝られません、よろしくお願いします。
該当のソースコード
python
1a=[[0,0]]*5 2a[0][1]='x' 3print(a) 4#[[0, 'x'], [0, 'x'], [0, 'x'], [0, 'x'], [0, 'x']] 5 6b=[] 7for i in range(5): 8 b.append([0,0]) 9b[0][1]='x' 10print(b) 11#[[0, 'x'], [0, 0], [0, 0], [0, 0], [0, 0]] 12 13c=[0]*5 14c[0]='a' 15print(c) 16#['a', 0, 0, 0, 0] 17 18
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/15 02:35