在阅读 dict.copy()
的文档时,它说它会创建一个字典的浅拷贝。我正在跟随的书籍(Beazley's Python Reference)也是如此:
m.copy() 方法将映射对象中包含的项进行浅拷贝,并将它们放入新的映射对象中。
考虑以下内容:
>>> original = dict(a=1, b=2)
>>> new = original.copy()
>>> new.update({'c': 3})
>>> original
{'a': 1, 'b': 2}
>>> new
{'a': 1, 'c': 3, 'b': 2}
所以我假设这会更新original
的值(并添加'c': 3),因为我正在进行浅拷贝。就像你对列表做的那样:
>>> original = [1, 2, 3]
>>> new = original
>>> new.append(4)
>>> new, original
([1, 2, 3, 4], [1, 2, 3, 4])
这个按预期运行。
由于两者都是浅复制,为什么 dict.copy()
不像我期望的那样工作呢?或者我的浅复制和深复制的理解有误?