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こっちの値は変わってしまう
勉強が一番、簡単でした 読んだら誰でも勉強したくなる奇跡の物語
[ad] 勉強が一番、簡単でした 読んだら誰でも勉強したくなる奇跡の物語
チャン・スンス, 吉川 南 (単行本(ソフトカバー))