回答編集履歴
2
修正
answer
CHANGED
@@ -7,37 +7,46 @@
|
|
7
7
|
実際にidを確認してみると良いです。
|
8
8
|
```Python
|
9
9
|
a = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
|
10
|
+
a[1][1] = 1
|
11
|
+
|
10
12
|
for e in a:
|
11
|
-
print(id(e))
|
13
|
+
print(f'{id(e)}: {e}')
|
12
14
|
|
13
|
-
print()
|
15
|
+
print('-'*42)
|
14
16
|
|
15
17
|
#
|
16
18
|
#
|
17
19
|
b = [[0] * 3] * 3
|
20
|
+
b[1][1] = 1
|
21
|
+
|
18
22
|
for e in b:
|
19
|
-
print(id(e))
|
23
|
+
print(f'{id(e)}: {e}')
|
20
24
|
|
21
|
-
print()
|
25
|
+
print('-'*42)
|
22
26
|
|
23
27
|
#
|
24
28
|
#
|
25
29
|
c = [[0] * 3 for _ in range(3)]
|
30
|
+
c[1][1] = 1
|
31
|
+
|
26
32
|
for e in c:
|
27
|
-
print(id(e))
|
33
|
+
print(f'{id(e)}: {e}')
|
34
|
+
|
35
|
+
print('-'*42)
|
28
36
|
```
|
29
37
|
|
30
|
-
**実行結果** [Wandbox](https://wandbox.org/permlink/
|
38
|
+
**実行結果** [Wandbox](https://wandbox.org/permlink/HEZpkk81o8qx6UYW)
|
31
39
|
```
|
32
|
-
|
40
|
+
139895659521672: [0, 0, 0]
|
33
|
-
139752138114888
|
34
|
-
|
41
|
+
139895659521864: [0, 1, 0]
|
35
|
-
|
36
|
-
139752138115336
|
37
|
-
139752138115336
|
38
|
-
139752138115336
|
39
|
-
|
40
|
-
139752138116296
|
41
|
-
|
42
|
+
139895659522184: [0, 0, 0]
|
43
|
+
------------------------------------------
|
42
|
-
|
44
|
+
139895659523656: [0, 1, 0]
|
45
|
+
139895659523656: [0, 1, 0]
|
46
|
+
139895659523656: [0, 1, 0]
|
47
|
+
------------------------------------------
|
48
|
+
139895659523976: [0, 0, 0]
|
49
|
+
139895659524040: [0, 1, 0]
|
50
|
+
139895659544648: [0, 0, 0]
|
51
|
+
------------------------------------------
|
43
52
|
```
|
1
追記
answer
CHANGED
@@ -1,4 +1,43 @@
|
|
1
1
|
後者は、リストの参照値が共有されてしまうからです。
|
2
2
|
[Qiita - pythonでのリストの要素の変更とリストのコピー](https://qiita.com/masarin1126/items/a0afa4a5fecacdd02be9)
|
3
3
|
|
4
|
-
良く躓くポイントなので、調べれば同様の話題はたくさん出てきます。
|
4
|
+
良く躓くポイントなので、調べれば同様の話題はたくさん出てきます。
|
5
|
+
|
6
|
+
---
|
7
|
+
実際にidを確認してみると良いです。
|
8
|
+
```Python
|
9
|
+
a = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
|
10
|
+
for e in a:
|
11
|
+
print(id(e))
|
12
|
+
|
13
|
+
print()
|
14
|
+
|
15
|
+
#
|
16
|
+
#
|
17
|
+
b = [[0] * 3] * 3
|
18
|
+
for e in b:
|
19
|
+
print(id(e))
|
20
|
+
|
21
|
+
print()
|
22
|
+
|
23
|
+
#
|
24
|
+
#
|
25
|
+
c = [[0] * 3 for _ in range(3)]
|
26
|
+
for e in c:
|
27
|
+
print(id(e))
|
28
|
+
```
|
29
|
+
|
30
|
+
**実行結果** [Wandbox](https://wandbox.org/permlink/xdcNb06JtTjRN3AI)
|
31
|
+
```
|
32
|
+
139752138114696
|
33
|
+
139752138114888
|
34
|
+
139752138115208
|
35
|
+
|
36
|
+
139752138115336
|
37
|
+
139752138115336
|
38
|
+
139752138115336
|
39
|
+
|
40
|
+
139752138116296
|
41
|
+
139752138116360
|
42
|
+
139752138116424
|
43
|
+
```
|