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)56
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)553
- C++ 实现快递公司运费计算:根据重量与类型精准算出费用(字节豆包 | 480点数解答 | 2025-12-21 22:04:58)156
- C++ 实现根据重量与快递类型计算某快递公司运费(字节豆包 | 472点数解答 | 2025-12-27 20:39:33)54
- C++ 实现快递公司运费计算:根据重量与类型精准算费(字节豆包 | 385点数解答 | 2026-02-03 14:00:23)74
- C++ 实现快递公司运费计算程序(字节豆包 | 479点数解答 | 2026-02-13 22:32:35)36
- C++实现快递公司运费计算及开发建议(字节豆包 | 550点数解答 | 2026-03-27 22:07:41)35
- 快递运费计算的C++代码实现(字节豆包 | 242点数解答 | 2026-04-12 16:24:10)21
- C++实现快递费计算及开发建议(字节豆包 | 625点数解答 | 2026-05-22 21:04:00)14
- C++实现快递费计算及开发建议(字节豆包 | 615点数解答 | 2026-05-22 21:05:07)12
- C++ 实现快递公司运费计算程序(字节豆包 | 621点数解答 | 2026-06-21 21:16:07)6
- C++开发必知:new int[10] 与 new int[10]() 的关键区别 (阿里通义 | 196点数解答 | 2023-11-09 00:45:31)356