初歩的な質問だと思いますが、
下記、納得がいきません。ご教示のほどお願い致します。
python
1 2from copy import deepcopy 3 4def changeList(lst): 5 a = [1, 2, 3] 6 lst = a 7 # lst = deepcopy(a)でも結果は同じ 8 9b = [1] 10changeList(b) 11 12print(b) # [1]が表示。 [1,2,3]ではない!
Pythonの場合、基本的にすべて参照渡しで、
かつ渡した先で変更されるか否かはmutable or immutableで決まる、
そしてリスト型はmutableだから変更されるはず、、、と理解しております。
なぜ上記では b は [1,2,3]にならないのでしょうか。
またPythonではそういう書き方は出来ない、または推奨されないのでしょうか。
アドバイス頂けますよう、お願い申し上げます。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/12 11:05
2018/02/12 11:18