【发布时间】:2020-05-12 21:41:14
【问题描述】:
这是一个非常基本的例子:
dict1 = dict({'a':[1,2,3],'b':[4,5,6],'c':[7,8,9]})
dict2 = dict1.copy()
dict2['a'] = [9,9,9]
print(dict1['a'])
结果:[1,2,3]
结果显示我能够在不更改原件的情况下编辑副本。
但如果我改为这样做:
dict1 = dict({'a':[1,2,3],'b':[4,5,6],'c':[7,8,9]})
dict2 = dict1.copy()
dict2['a'][0] = 9
print(dict1['a'])
结果:[9,2,3]
所以看起来使用 .copy() 使得复制的 dict 具有来自原始 dict 的独立键,但与这些键关联的值仍然是连接的。有解决方法吗?谢谢!
【问题讨论】:
-
这称为浅拷贝。完整的解释在stackoverflow.com/questions/3975376/…
标签: python list dictionary copy