回答編集履歴

3

追記

2020/10/25 08:38

投稿

LouiS0616
LouiS0616

スコア35668

test CHANGED
@@ -1,3 +1,9 @@
1
+ 関数定義していることは、今回の問題には関係無いです。
2
+
3
+
4
+
5
+ ---
6
+
1
7
  valは確かにarglistの一要素ではありますが、valへの代入がarglistに影響することはありません。※
2
8
 
3
9
  次のコードでarrが[42, 1, 4]にならないのと同じ理由です。
@@ -97,3 +103,19 @@
97
103
  print(a, b) # => [1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5, 6]
98
104
 
99
105
  ```
106
+
107
+
108
+
109
+ コードの貼り方について
110
+
111
+ ---
112
+
113
+ teratailには、コードを見やすく表示する機能があります。
114
+
115
+ 質問編集画面を開き、コードを選択した状態で<code>ボタンを押して下さい。
116
+
117
+ ![Python](56957fe805d9d7befa7dba6a98676d2b.gif)
118
+
119
+
120
+
121
+ 特にPythonの場合、インデントが崩れるとコードの意味が変わってしまいます。

2

修正

2020/10/25 08:38

投稿

LouiS0616
LouiS0616

スコア35668

test CHANGED
@@ -56,14 +56,44 @@
56
56
 
57
57
 
58
58
 
59
+ **※** ちょっとややこしい話
60
+
59
61
  ---
60
-
61
- **※**
62
62
 
63
63
  a += b と書いたとき、
64
64
 
65
- aの型に依ってはインプレースに操作が行われることがあり、元のリストに影響します。
65
+ aの型に依ってはインプレースに操作が行われ、当然元のリストに影響します。
66
66
 
67
67
 
68
68
 
69
69
  Pythonにおいては、a += b と a = a + b の意味が異なることがあります。
70
+
71
+ ```Python
72
+
73
+ a = [1, 2, 3]
74
+
75
+ b = a
76
+
77
+ b = b + [4, 5, 6]
78
+
79
+
80
+
81
+ print(a, b) # => [1, 2, 3] [1, 2, 3, 4, 5, 6]
82
+
83
+ ```
84
+
85
+
86
+
87
+ ```Python
88
+
89
+ a = [1, 2, 3]
90
+
91
+ b = a
92
+
93
+ b += [4, 5, 6]
94
+
95
+
96
+
97
+ print(a, b) # => [1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5, 6]
98
+
99
+ ```

1

追記

2020/10/25 08:35

投稿

LouiS0616
LouiS0616

スコア35668

test CHANGED
@@ -1,4 +1,4 @@
1
- valは確かにarglistの一要素ではありますが、valへの代入がarglistに影響することはありません。
1
+ valは確かにarglistの一要素ではありますが、valへの代入がarglistに影響することはありません。
2
2
 
3
3
  次のコードでarrが[42, 1, 4]にならないのと同じ理由です。
4
4
 
@@ -53,3 +53,17 @@
53
53
  arr[i] = ???
54
54
 
55
55
  ```
56
+
57
+
58
+
59
+ ---
60
+
61
+ **※**
62
+
63
+ a += b と書いたとき、
64
+
65
+ aの型に依ってはインプレースに操作が行われることがあり、元のリストに影響します。
66
+
67
+
68
+
69
+ Pythonにおいては、a += b と a = a + b の意味が異なることがあります。