teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

追記

2020/10/25 08:38

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -1,3 +1,6 @@
1
+ 関数定義していることは、今回の問題には関係無いです。
2
+
3
+ ---
1
4
  valは確かにarglistの一要素ではありますが、valへの代入がarglistに影響することはありません。※
2
5
  次のコードでarrが[42, 1, 4]にならないのと同じ理由です。
3
6
  ```Python
@@ -47,4 +50,12 @@
47
50
  b += [4, 5, 6]
48
51
 
49
52
  print(a, b) # => [1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5, 6]
50
- ```
53
+ ```
54
+
55
+ コードの貼り方について
56
+ ---
57
+ teratailには、コードを見やすく表示する機能があります。
58
+ 質問編集画面を開き、コードを選択した状態で<code>ボタンを押して下さい。
59
+ ![Python](56957fe805d9d7befa7dba6a98676d2b.gif)
60
+
61
+ 特にPythonの場合、インデントが崩れるとコードの意味が変わってしまいます。

2

修正

2020/10/25 08:38

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -27,9 +27,24 @@
27
27
  arr[i] = ???
28
28
  ```
29
29
 
30
+ **※** ちょっとややこしい話
30
31
  ---
31
- **※**
32
32
  a += b と書いたとき、
33
- aの型に依ってはインプレースに操作が行われることがあり、元のリストに影響します。
33
+ aの型に依ってはインプレースに操作が行われ、当然元のリストに影響します。
34
34
 
35
- Pythonにおいては、a += b と a = a + b の意味が異なることがあります。
35
+ Pythonにおいては、a += b と a = a + b の意味が異なることがあります。
36
+ ```Python
37
+ a = [1, 2, 3]
38
+ b = a
39
+ b = b + [4, 5, 6]
40
+
41
+ print(a, b) # => [1, 2, 3] [1, 2, 3, 4, 5, 6]
42
+ ```
43
+
44
+ ```Python
45
+ a = [1, 2, 3]
46
+ b = a
47
+ b += [4, 5, 6]
48
+
49
+ print(a, b) # => [1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5, 6]
50
+ ```

1

追記

2020/10/25 08:35

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -1,4 +1,4 @@
1
- valは確かにarglistの一要素ではありますが、valへの代入がarglistに影響することはありません。
1
+ valは確かにarglistの一要素ではありますが、valへの代入がarglistに影響することはありません。
2
2
  次のコードでarrが[42, 1, 4]にならないのと同じ理由です。
3
3
  ```Python
4
4
  arr = [3, 1, 4]
@@ -25,4 +25,11 @@
25
25
  for i, e in enumerate(arr):
26
26
  if e == ???:
27
27
  arr[i] = ???
28
- ```
28
+ ```
29
+
30
+ ---
31
+ **※**
32
+ a += b と書いたとき、
33
+ aの型に依ってはインプレースに操作が行われることがあり、元のリストに影響します。
34
+
35
+ Pythonにおいては、a += b と a = a + b の意味が異なることがあります。