created: 2020-11-16T10:14:09.000Z
pythonで辞書をdict()したときの値のコピーのされかたがshallow-copyなのを確認
pythonで dict()
を呼ぶとdict-likeな値をdictにキャストできる。
もとの辞書の値がコピーされているのだが、shallow copyなのかどうなのかを確認した。
d1 = {1: 2, 3: {4: 5}}
d2 = dict(d1)
assert d1 == d2 # 等価
d1[1] = 'a' # 元のdictの値を変更しても
assert d2[1] == 2 # コピーされたdictの値は変わらない
d1[3][4] = 'a' # 深いところの値を変更すると
assert d2[3][4] == 'a' # shallow-copyなのでdictこっちの値は変わってしまう