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

回答編集履歴

1

fix

2020/06/27 09:40

投稿

kotori_a
kotori_a

スコア898

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, 2, 3]
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」の書き方によって、呼び出される足し算の計算挙動が異なっていることから生じているものと推測されます。