[python] 皆さんはどのようにして参照の概念を理解しましたか?
Discussion
Pythonを教えているのですが、参照の概念を理解するのに苦戦している方がいます。
例えば、以下のコードです。
x = ["a", [1, 2, 3], "b"]
y = x[1]
z = y
y = 1
print(x) # => ["a", [1, 2, 3], "b"]
print(y) # => 1
print(z) # => [1, 2, 3]
このようなオブジェクトの参照関係がうまく掴めず、特に
- 多次元リスト(リストの中のリストなど)
- 辞書内のリスト(その中に辞書があるなど)
といった複雑なデータ構造になると、変数がどこを参照しているのか追えなくなるようです。
関数にリストを渡したときに、「どのような操作をしたら元の変数に影響が出るのか?出ないのか?」という点も、まだ直感的に理解できていないようで、良い教材や解説方法を探しています。
いくつかYouTubeの動画も参考にしてもらいましたが、参照について細かく解説しているものは少なく、なかなか「これだ!」というものが見つかりませんでした。
参考に見てもらったyoutube
How variables work in Python | Explained with Animations [See description/first comment]
https://www.youtube.com/watch?v=0Om2gYU6clE
WHY IS THE STACK SO FAST?
https://www.youtube.com/watch?v=N3o5yHYLviQ
WHY IS THE HEAP SO SLOW?
https://www.youtube.com/watch?v=ioJkA7Mw2-U
Understand the weirdness. How Python Passes Arguments.
https://www.youtube.com/watch?v=D3IffJOwDY0
MIT 6.100L Introduction to CS and Programming using Python, Fall 2022
https://www.youtube.com/playlist?list=PLUl4u3cNGP62A-ynp6v6-LGBCzeH3VAQB
【Pythonプログラミング入門】ミュータブル・イミュータブルを解説!〜VTuberと学習〜 【初心者向け】
https://youtu.be/PQjdqQbjnLU?si=cW3E1RyjXyVF3vbe&t=234
日本でよく売れてる本の人でもこの数分程度しか参照の事は説明してない
- 3:54 参照とは
- 4:55 関数の引数は参照渡し
- 6:58 エンディング
お尋ねですが
皆さんは、参照の概念をどのように理解・習得しましたか?
また、初心者が分かりやすい教材や説明方法があれば教えていただけると助かります。