これは、Pythonの学習メモです。
リストを使う場合には、注意しないといけない例があります。
>>> a = [1,2,3]
>>> b = a
>>> print(a,b)
[1, 2, 3] [1, 2, 3]
>>> b[0] = 10
>>> print(a,b)
[10, 2, 3] [10, 2, 3]
リスト「b」で要素を変更する場合は、リスト「a」に該当する要素も同時に変わります。
リストはミュータブルであるため、b[0] = 10
で要素を更新しますと:
要素を変更しても、「a」で定義したリストとのオブジェクトそのものは変わりませんので、リスト「a」は前と同じ参照先へ参照します。つまり、「a」の値も[10, 2, 3]
になっています。オブジェクトidで確認しますと、以下になります。
>>> a = [1,2,3]
>>> b = a
>>> print(a,b)
[1, 2, 3] [1, 2, 3]
>>> print(id(a),id(b))
4516968584 4516968584
>>> b[0] = 10
>>> print(a,b)
[10, 2, 3] [10, 2, 3]
>>> print(id(a),id(b))
4516968584 4516968584