小白发现一个 dict 的奇怪现象,请问有什么办法可以避免

2021-05-09 21:07:53 +08:00
 meteordragon
dd={"a":"1","b":"2"}
cc=dd
cc["c"]="3"
print(dd)
print(cc)

运行结果是
{'a': '1', 'b': '2', 'c': '3'}
{'a': '1', 'b': '2', 'c': '3'}

改变 cc 的值同时改变 dd 的值
list 变量有同样的问题
但是我他赋值给另一个变量的目的就是不改变它的值啊。请问有什么办法避免这个问题吗?还是说是我的 python 环境有问题呢?
3544 次点击
所在节点    Python
21 条回复
IgniteWhite
2021-07-17 08:31:27 +08:00
@xiri cc=dd.copy() 也是浅拷贝。
@jmc891205 cc=dict(dd) 也是浅拷贝。
只有 @mcoo1997 在二楼使用 copy.deepcopy()是深拷贝。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/775865

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX