Python のリストでの次の異常な動作がわかりません。誰かが光を当てることができれば幸いです。
スニペット 1:
myList = [1,2,3,4]
A = [myList]*3
print(A)
myList[2]=45
print(A)
出力:
[[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]]
[[1, 2, 45, 4], [1, 2, 45, 4], [1, 2, 45, 4]]
myList の要素操作から A を「シールド」する追加のコピー関数を実行しなかったので、これは私には理にかなっています。
スニペット 2:
myList = [1,2,3,4]
A = myList*3
print(A)
myList[2]=45
print(A)
出力:
[1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]
[1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]
myList への変更が A に反映されないのはなぜですか?