回答編集履歴

2

脱字を修正

2023/07/26 12:16

投稿

meg_
meg_

スコア10923

test CHANGED
@@ -9,7 +9,7 @@
9
9
  ```
10
10
  上記の通り、``tmp``のid と ``box[1]``の id は同一です。つまり同じオブジェクトを指しています。そのため``tmp``の内容を変更すると``box[1]``の内容も変わります。変わるというよりは同じものを指しているのです。
11
11
 
12
- 質問者さんのやりたい事は下記コードで実現できるかと思います。
12
+ 質問者さんのやりたい事は下記コードで実現できるかと思います。
13
13
  ```Python
14
14
  import copy
15
15
 

1

追記

2023/07/26 12:15

投稿

meg_
meg_

スコア10923

test CHANGED
@@ -25,3 +25,5 @@
25
25
  print(box)
26
26
  # [['a', 'b'], ['c', 'd']]
27
27
  ```
28
+
29
+ 「改めて質問です。」については、``tmp[0] = "xxx"``では``tmp``が指すオブジェクトの要素を変更していますが、``tmp = "zzz"``では``tmp``が指すオブジェクトそのものを変更しています。ここで確認すると分かりますが、``box[1]``と``tmp``の id は異なるものになっています。ですので``box``の内容は変わりません。