リストオブジェクトの共有
はじめに(5月4日追記)
コメント欄の @shiracamus さんのご説明が非常に分かりやすく参考になると思います.
この記事の本文よりも,是非コメント欄をお読みください.
自己紹介
データサイエンスに関する研究(理論と応用)をしている学生です.
これまでR言語しか使ってきませんでしたが,最近Pythonの学習を始めました.
RとPythonで全然違うなあと思った点や,使い分ける上で注意すべき点をまとめていきます.
今後,ご指摘やアドバイスなど,よろしくお願いいたします.
たとえば
test.R
lis1 = list(1,2)
lis2 = lis1
lis1[[1]] = 100
print(lis2)
# 出力
[[1]]
[1] 1
[[2]]
[1] 2
test.R
lis1 = list(1,2)
lis2 = lis1
lis1[[1]] = 100
print(lis2)
# 出力
[[1]]
[1] 1
[[2]]
[1] 2
Pythonだと,全然違う結果になる.
参照渡しが行われている.
test.py
lis1 = [1,2]
lis2 = lis1
lis1[0] = 100
print(lis2)
# 出力
[100, 2]
Rっぽく扱う(値渡し)をするためには,copyモジュールとやらを使えばよさそう.
Author And Source
この問題について(リストオブジェクトの共有), 我々は、より多くの情報をここで見つけました https://qiita.com/start_2802/items/a5cb1331d04b68f09f09著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .