

新闻资讯
技术学院字典的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}}copy() 创建的是浅拷贝,因此当原字典中的值是可变类型时,修改会影响副本,反之亦然:
my_dict['b'].append(5)可以看到,对列表的修改同时反映在原字典和副本中,因为它们共享同一个列表对象。
当你需要一个独立的字典结构,但不担心嵌套的可变对象被共享时,可以使用 copy()。常见场景包括:
原数据备份若需完全独立的副本(包括嵌套对象),应使用 import copy 模块中的 copy.deepcopy()。
基本上就这些,copy() 是日常开发中很实用的小工具,理解它的浅拷贝特性就能避免多数陷阱。