Pythonの変数について1

Python

変数とは箱の様なものという事で、そのまんまのイラストを選んでみました。

前回の更新からかなり日が経っておりますが、諦めずに理解の深掘りを続けています。

Udacityの無料コースProgramming Foundation with Pythonは一通り進めたのでオブジェクト指向なものへの理解が深まったはずですが、まだ悩み悩み書いている途中。
Databaseについて、ざっくりとした知識を知っておきたいので同無料コースIntro to Relational Databasesを進めつつ、合間にPythonの問題を解いています。

しかし、授業を進めつつネット上の問題を解いていると学んだ事をまとめる時間もなくなるし、明らかに寄り道をしすぎな気がするので、今後少しスピードを上げて行きたい。

巷では気づけばラグビー真っ最中。 日本代表が優勝候補アイルランドに勝つという、歴史的勝利との事。 おめでとうございます!

好きなサッカーでは応援している乾選手はスペイン1部Eibarで活躍されています。
日曜日には幻の今季初得点からの今季初アシスト。幻の得点で失意だったろうに、その後諦めず攻め切る乾選手のメンタルが素晴らし過ぎます。少しで良いので見習って行きたい。
興味のある方は試合はDAZNでまだ見る事ができます。もしくはyoutubeで「乾貴士」「エイバル」「今季初アシスト」などで検索すると見つかるかと。
エイバルのハイプレス一見の価値あります。
という事で、熱いチームでの熱い試合、これからも楽しみにしています。

閑話休題。 今日はPythonの変数について自分の知識を整理する為の投稿。
integerタイプの変数をコピーした時の動きと、リストをコピーした時の動きが異なる理由についてなんとなくわかったので。

例えば変数aにinteger型の「3」を代入、そのまま別の変数nでコピーします。

a = 3
n = a 

aとnのデータを見ると、どちらも「3」です。

>>> a
3
>>> n
3


ここで変数aにstr(文)型のデータを代入します。

>>> a = "sample"

すると、aには’sample’が入りましたが、nは3のままです。

>>> a
'sample'
>>> n
3 

当然の話ですね。Pythonをはじめたてのあなたもきっとその理解でしょう。

しかし例えばリスト型のデータの場合は異なるのです。ん?どういう事?

下記の通り、変数pにlist型のデータ[1, 2, 3]を代入、そのまま別の変数mでコピーします。

>>> p = [1, 2, 3] 
>>> m = p 

pとmのデータを見ると、どちらも[1, 2, 3]です。

>>> p [1, 2, 3] 
>>> m [1, 2, 3] 

ここでlist型pの3つ目の要素を”sample”に変更します。

>>> p[2] = “sample" 

すると、変数pの3つ目の要素が変更されています。 ここまでは理解通り。

>>> p 
[1, 2, 'sample'] 

では変数pはどうでしょう。
そう、ご存知の方は当然でしょうし、 ご存知でない方にとっても、この文脈上はご想像頂いた通り、 変数mの3つ目の要素も同様に変更されています。

>>> m
[1, 2, 'sample'] 

むむ、なんで??

コードを表示する方法を探すのでえらい手間取ってしまったので、続きは次回。
明日は出せるかな〜♪(パプリカ風に)

先日急逝された瀧本哲史氏の著書。 資本主義の世界に暮らす以上、忘れてはならない投資という観点は特に参考になる。 なぜか学校ではまともに教えてくれないだけにこの様な本は貴重。 私は以前本で買ったが、今Kindle版を買うと72%、1,436のアマゾンポイントが戻ってくるそうです。 欲しかった、という方は今がタイミング。

コメント

タイトルとURLをコピーしました