Python - 深浅拷贝的区别
总结:
- 浅copy: 不管多么复杂的数据结构,浅拷贝都只会copy一层
- deepcopy : 深拷贝会完全复制原变量相关的所有数据,在内存中生成一套完全一样的内容,我们对这两个变量中任意一个修改都不会影响其他变量
注意:深浅拷贝都是拷贝的数据的内存地址
代码展示:
import copy list1 = [1, 2, 3, 4, [5, 6]] print('list1的id:', id(list1)) print('list1第4个元素的id:', id(list1[4])) # 浅拷贝 list2 = copy.copy(list1) print(list2) print('list2的id:', id(list2)) print('list2第4个元素的id:', id(list2[4])) # 深拷贝 list3 = copy.deepcopy(list1) print(list3) print('list3的id:', id(list3)) print('list3第4个元素的id:', id(list3[4])) # 改变list1中的元素 list1[2] = 7 list1[4][1] = 8 print('list1:', list1) print('list2:', list2) print('list3:', list3)
运行结果:
list1的id: 53090704 list1第4个元素的id: 52895096 [1, 2, 3, 4, [5, 6]] list2的id: 53091024 list2第4个元素的id: 52895096 [1, 2, 3, 4, [5, 6]] list3的id: 53091304 list3第4个元素的id: 53091664 list1: [1, 2, 7, 4, [5, 8]] list2: [1, 2, 3, 4, [5, 8]] list3: [1, 2, 3, 4, [5, 6]]
作者:小林同学_Scorpio
本博客所有文章仅用于学习、分享和交流目的,欢迎非商业性质转载。
博主的文章没有高度、深度和广度,只是凑字数,做笔记。由于博主的水平不高,不足和错误之处在所难免,希望大家能够批评指出。
博主是利用参考、引用、抄袭、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个无耻的文档搬运工!
分类:
python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?