Python开发必知:copy()、deepcopy() 与普通赋值的区别大揭秘!
`copy()`和`deepcopy()`是Python中的两个内置函数,它们都用于复制对象,但是复制的方式有所不同。 - `copy()`函数创建了一个新对象,这个新对象与原始对象共享数据,也就是说,如果在新对象上修改了数据,原始对象的数据也会改变。`copy()`函数复制的是对象的引用,而不是对象本身。 - `deepcopy()`函数创建了一个新对象,这个新对象与原始对象的数据是完全独立的,也就是说,如果在新对象上修改了数据,原始对象的数据不会改变。`deepcopy()`函数不仅复制对象的引用,还复制了对象的数据。 举个例子: ```python import copy # 创建一个列表 a = [2, 3, 4] # 使用copy()函数复制a b = copy.copy(a) # 使用deepcopy()函数复制a c = copy.deepcopy(a) # 修改b的最后一个元素 b[2] = 5 # 输出a和b的内容 print("a:", a) # 输出:a: [2, 3, 4] print("b:", b) # 输出:b: [2, 3, 5] # 修改c的最后一个元素 c[2] = 6 # 输出a和c的内容 print("a:", a) # 输出:a: [2, 3, 4] print("c:", c) # 输出:c: [2, 3, 6] ``` 在这个例子中,我们首先创建了一个列表`a`,然后使用`copy()`和`deepcopy()`函数分别复制了这个列表。然后我们修改了复制后的列表`b`和`c`的最后一个元素。最后我们输出了原始的列表`a`和修改后的列表`b`和`c`的内容。我们可以看到,修改`b`的最后一个元素并没有影响到`a`,但是修改`c`的最后一个元素却影响到了`a`。这是因为`copy()`函数创建的新对象与原始对象共享数据,而`deepcopy()`函数创建的新对象与原始对象的数据是完全独立的。 ######[AI写代码神器 | 453点数解答 | 2023-11-08 00:47:46]
- 解决 “copy” 命令执行报错:路径与权限问题全攻略 (字节豆包 | 400点数解答 | 2025-11-25 11:36:59)45
- C++ 实现快递公司运费计算:根据重量与类型精准算出费用(字节豆包 | 480点数解答 | 2025-12-21 22:04:58)84
- C++ 实现根据重量与快递类型计算某快递公司运费(字节豆包 | 472点数解答 | 2025-12-27 20:39:33)37
- C++ 实现快递公司运费计算:根据重量与类型精准算费(字节豆包 | 385点数解答 | 2026-02-03 14:00:23)51
- C++ 实现快递公司运费计算程序(字节豆包 | 479点数解答 | 2026-02-13 22:32:35)17
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)462
- C++开发必知:new int[10] 与 new int[10]() 的关键区别 (阿里通义 | 196点数解答 | 2023-11-09 00:45:31)324
- Python 实战:学生信息列表转字典、遍历、深拷贝及数据修改全流程(GPT | 422点数解答 | 2024-10-29 15:43:54)417
- Python实战:学生成绩列表转字典,深拷贝与数据修改操作全解析(字节豆包 | 254点数解答 | 2024-10-29 16:01:39)409
- 多语言实现给变量 scolor1 与 scolor2 赋值“red”的代码示例(阿里通义 | 170点数解答 | 2024-05-20 22:29:55)275
- Python实战:创建100个学生实例,实现欢迎语与学生列表添加(GPT | 426点数解答 | 2024-12-17 16:48:18)275
- iOS开发:让自定义类使用copy修饰符及重写带copy关键字setter的方法(阿里通义 | 268点数解答 | 2023-11-08 00:37:40)252