Python初学者です。
以下の①~④の流れで二次元配列を作成したところ、その後に二次元配列を操作していないのに、勝手に値が変わってしまう理由について教えてください。
①二次元配列boxを宣言
box = [["a", "b"]]
②一次元配列tmpを宣言し、二次元配列boxにappend
tmp = ["c", "d"]
box.append(tmp)
③ここまでは期待通りの処理結果が返る
print(box)
→[["a","b"],["c", "d"]]
④一次元配列tmpの0要素を変更すると、二次元配列boxの値も変わる
tmp[0] = "xxx"
print(box)
→[["a","b"],["xxx", "d"]]
改めて質問です。
②で一度、二次元配列boxに格納したのにも関わらず、④にて格納元となった変数の変更を行うと、二次元配列boxにも影響があるのはどうしてなのでしょうか。
また、④の代わりに
tmp = "zzz"
print(box)
とすると、③と同じ[["a","b"],["c", "d"]]となり、二次元配列boxに影響はありませんでしたが、このように二次元配列に影響がない場合と、前述のように影響がある場合の違いについても教えてください。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/07/26 12:41
2023/07/27 14:13
2023/07/27 15:17