モナーのパイソンでゴーゴー

湘南あたりの海辺より

(*´ω`)コピーはidentityをひとつにしてしまうため・・・

【実行結果】

f:id:ririruby:20200424200004j:plain

【解説】

scores1とscores2があってこの時点ではそれぞれのidentityは異なっている。

ところがscores1 = scores2 とすることによってidentityは同じになってしまう。

そしてscores1[0]に90を代入する。ところがscores2もscores1と同じidentityに

なっているため、指し示すデータはひとつのみ。しったがってscores2[0]も

90になるということだ。

 

【コード】

#identityの相違がある 
scores1 = [80, 40, 50]
scores2 = [80, 40, 50]
print('scores1の先頭要素は{}'.format(scores1[0]))
print('scores2の先頭要素は{}'.format(scores2[0]))
#identityのコピー(ここでidentityは同じになってしまう。つまりidentityはひとつになる)
print('変数scores2の中身をscores1に代入(コピー)します')
scores1 = scores2
 
#score1[0]を90に変更したがidentityは一つのままになっている
print('scores1の先頭要素を90に書き換えます')
scores1[0] = 90

#実際2つに見えるが同じidentityを見にいっているので当然同じ内容になってくる
print('90を代入した scores1の先頭要素は{}'.format(scores1[0]))
print('90を代入していない scores2の先頭要素は{}'.format(scores2[0]))

print(' ∧ ∧  モナーはシステム解析家')
print('( ゚Д゚)')
print('海と猫が好き')