字典的copy()函数创建浅拷贝,新字典共享原字典中的可变对象:my_dict = {'a': 1, 'b': [2, 3], 'c': {'x': 4}}; new_dict = my_dict.copy(); 修改my_dict['b']会影响new_dict,因列表是同一对象。

在 Python3 中,字典的 copy() 函数用于创建一个字典的浅拷贝。这意味着新字典会包含原字典中所有键值对的副本,但这些值如果为可变对象(如列表或字典),则新旧字典仍会共享这些对象。
基本用法
使用 copy() 方法非常简单,只需在字典后调用该方法即可:
my_dict = {'a': 1, 'b': [2, 3], 'c': {'x': 4}}new_dict = my_dict.copy()
print(new_dict) # 输出: {'a': 1, 'b': [2, 3], 'c': {'x': 4}}
浅拷贝的特点
copy() 创建的是浅拷贝,因此当原字典中的值是可变类型时,修改会影响副本,反之亦然:
my_dict['b'].append(5)print(my_dict) # {'a': 1, 'b': [2, 3, 5], 'c': {'x': 4}}
print(new_dict) # {'a': 1, 'b': [2, 3, 5], 'c': {'x': 4}} → 副本也变了
可以看到,对列表的修改同时反映在原字典和副本中,因为它们共享同一个列表对象。
立即学习“Python免费学习笔记(深入)”;
动态WEB网站中的PHP和MySQL详细反映实际程序的需求,仔细地探讨外部数据的验证(例如信用卡卡号的格式)、用户登录以及如何使用模板建立网页的标准外观。动态WEB网站中的PHP和MySQL的内容不仅仅是这些。书中还提到如何串联JavaScript与PHP让用户操作时更快、更方便。还有正确处理用户输入错误的方法,让网站看起来更专业。另外还引入大量来自PEAR外挂函数库的强大功能,对常用的、强大的包
何时使用 copy()
当你需要一个独立的字典结构,但不担心嵌套的可变对象被共享时,可以使用 copy()。常见场景包括:
- 避免直接修改原始配置字典
- 临时修改数据并保留原数据备份
- 函数传参时防止意外更改原字典
若需完全独立的副本(包括嵌套对象),应使用 import copy 模块中的 copy.deepcopy()。
基本上就这些,copy() 是日常开发中很实用的小工具,理解它的浅拷贝特性就能避免多数陷阱。







