回答編集履歴
1
fix
answer
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
+
「pythonは参照渡しではなく参照値の値渡し」云々についてここでは他の方に譲ります。
|
1
|
-
リストの場合との挙動の比較、また同じnumpyであっても計算式が異なると結果が異なる点について、説明します。
|
2
|
+
純粋にリストの場合との挙動の比較、また同じnumpyであっても計算式が異なると結果が異なる点について、説明します。
|
2
3
|
|
3
4
|
リストの場合、下記のように、関数呼び出し元と呼び出し先で、変数のid(識別値)が変わっておらず、同じオブジェクトにたいして要素の書き換えが行われていることがわかります。
|
4
5
|
|
@@ -23,7 +24,7 @@
|
|
23
24
|
-関数内 計算前: 2971572413192
|
24
25
|
-関数内 計算後: 2971572413192
|
25
26
|
関数 呼出後: 2971572413192
|
26
|
-
[9,
|
27
|
+
[9, 1, 2]
|
27
28
|
```
|
28
29
|
|
29
30
|
同様にnumpy配列でも、要素を置き換える場合は同じオブジェクトにたいしてデータ操作が行われます。
|
@@ -96,4 +97,4 @@
|
|
96
97
|
[1 2 3] <= 配列の中身が書き換わっている
|
97
98
|
```
|
98
99
|
|
99
|
-
上記の挙動の違いは、「x=x+1」と「x+=1」の書き方によって、呼び出される
|
100
|
+
上記の挙動の違いは、「x=x+1」と「x+=1」の書き方によって、呼び出される足し算の計算挙動が異なっていることから生じているものと推測されます。
|