PythonのListで初歩的なことですが・・・
>>> a = [1,2,3]
>>> b = a
>>> a[1] = 5
>>> b
[1, 5, 3]
Pythonでは参照渡し(メモリのid参照だっけ?)になるので同じものに。
>>> a = [1,2,3]
>>> c = a[:]
>>> a[2] = 8
>>> c
[1, 2, 3]
>>> b = a
>>> b
[1, 2, 8]
>>> b[1] = 5
>>> a
[1, 5, 8]
>>> b
[1, 5, 8]
>>> c
[1, 2, 3]
>>> c[1] = 0
>>> c
[1, 0, 3]
>>> a
[1, 5, 8]
>>> b
[1, 5, 8]
なんだか間違えそうになるのですが、Listの値をコピーするのは[:]を使えば大丈夫っぽいのかな。b = a だとメモリ先をコピーするから同じもの。c = a[:] だと値をコピー、と。単純な初歩的なことだから覚えておこう。PHPだとそのまま値コピーだから・・・。
キタミ式イラストIT塾 基本情報技術者 平成30年度 (情報処理技術者試験)
- 作者: きたみりゅうじ
- 出版社/メーカー: 技術評論社
- 発売日: 2017/12/23
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る