Python 浅拷贝 深拷贝
📅 2026/7/30 6:32:48
👁️ 次浏览
浅拷贝与深拷贝直接赋值对象的引用别名不产生拷贝浅拷贝拷贝父对象不会拷贝对象的内部的子对象。拷贝后只有第一层是独立的深拷贝完全拷贝了父对象及其子对象。拷贝后所有层都是独立的。方式是否生成新父对象是否拷贝嵌套子对象数据独立性适用场景直接赋值否否完全不独立仅需引用对象无需修改数据浅拷贝是否第一层独立深层不独立对象无嵌套可变元素追求高效深拷贝是是递归所有层级完全独立对象存在嵌套可变元素需要数据隔离如何浅拷贝列表切片list[:]最简洁仅适用于列表工厂函数list()、set()、dict()通用序列/字典浅拷贝copy模块copy.copy()通用所有可拷贝对象案例1创建一个列表其中包含整型和列表元素使用copy()函数对其浅拷贝。使用id()查看列表地址和列表中每个元素的地址。import copy # 导入copy模块 # 定义原列表第一层不可变元素第三层嵌套可变列表 list1 [1, 2, 3, [100, 200, 300]] print( 原列表初始状态 ) print(原列表list1:, list1) print(list1外层内存地址:, id(list1)) print(list1[0]int元素地址:, id(list1[0])) print(list1[1]int元素地址:, id(list1[1])) print(list1[2]int元素地址:, id(list1[2])) print(list1[3]嵌套列表地址:, id(list1[3])) # 浅拷贝生成新列表list2 list2 copy.copy(list1) print(\n 浅拷贝后新列表初始状态 ) print(拷贝后列表list2:, list2) print(list2外层内存地址:, id(list2)) print(list2[0]int元素地址:, id(list2[0])) print(list2[1]int元素地址:, id(list2[1])) print(list2[2]int元素地址:, id(list2[2])) print(list2[3]嵌套列表地址:, id(list2[3]))可以看到拷贝后的新列表地址改变了但列表各个元素还是同一地址此时修改list1[0]类型元素# 修改原列表第一层int元素不可变类型 list1[0] 100 print(\n 修改第一层不可变元素后 ) print(原列表list1:, list1, 地址:, id(list1), 索引0地址:, id(list1[0])) print(拷贝列表list2:, list2, 地址:, id(list2), 索引0地址:, id(list2[0]))因为int是不可变类型修改时会直接开辟新内存空间、生成新对象不会影响原引用因此浅拷贝后的第一层数据相互独立。修改list[3]列表元素# 修改原列表深层嵌套列表可变类型 list1[3].append(400) print(\n 修改深层可变元素后 ) print(原列表list1:, list1, 索引3地址:, id(list1[3])) print(拷贝列表list2:, list2, 索引3地址:, id(list2[3]))原列表和拷贝列表的嵌套列表同时新增400数据同步变化。因为嵌套list是可变类型浅拷贝未复制深层子对象二者共用同一个内存地址原地修改数据会影响所有引用该对象的变量。如何深拷贝通过copy.deepcopy()实现递归全层级拷贝适配所有嵌套数据结构列表、字典、自定义对象等。案例1创建一个列表其中包含整型和列表元素使用deepcopy()对其深拷贝。使用id()查看列表地址和列表中各个元素的地址。import copy # 定义嵌套测试列表 list1 [1, 2, 3, [100, 200, 300]] print( 深拷贝前原列表状态 ) print(list1数据:, list1) print(list1地址:, id(list1), 嵌套列表地址:, id(list1[3])) # 深拷贝生成全新列表list3 list3 copy.deepcopy(list1) print(\n 深拷贝后新列表状态 ) print(list3数据:, list3) print(list3地址:, id(list3), 嵌套列表地址:, id(list3[3]))初始结果分析外层列表地址完全不同深层嵌套可变列表地址完全不同完成递归拷贝不可变元素int地址不变Python缓存机制节省内存不影响数据独立性。修改list[0]整型元素和list[3]列表元素# 1. 修改第一层不可变元素 list1[0] 100 # 2. 修改深层嵌套可变元素 list1[3].append(400) print(\n 修改原列表后对比 ) print(原列表list1:, list1) print(深拷贝列表list3:, list3)最终现象原列表数据完全修改深拷贝后的list3无任何变化真正实现数据完全隔离、互不干扰。补充元组的特殊拷贝特性元组是不可变类型但如果元组包含嵌套可变对象浅拷贝依然会共享子对象引用深拷贝一人会递归复制和列表逻辑一致import copy t1 (1, [2, 3]) t2 copy.copy(t1) t3 copy.deepcopy(t1) print(id(t1[1]) id(t2[1])) # True 浅拷贝共享子对象 print(id(t1[1]) id(t3[1])) # False 深拷贝完全独立
1. 项目概述:为什么Addressable远程热更值得投入?在Unity项目开发的中后期,尤其是上线运营阶段,资源管理会从一个“开发问题”演变成一个“运维噩梦”。想象一下,你的游戏上线后发现一个UI图标错误,或者一个…
📅 2026/7/30 6:32:48
刚看到后台有同学私信问,说看到课程表或者学校官网有个代号叫 geo330,心里直打鼓。这到底是啥神仙专业?是不是那种很难毕业的“天坑”?还是说其实是个隐藏的金矿?说实话,这种代号让人摸不着头脑太正常了。毕竟现在大学专业名字五花八门,缩写更是让人头大。今天咱就掏心窝…
📅 2026/7/30 6:32:23
日常内容创作、办公提效、代码开发、智能设计工作中,全能型AI助手的使用场景愈发广泛。不同AI智能工具在功能覆盖、运行模式、跨端适配、场景适配性上存在明显区别。下文客观记录五款AI助手工具的基础能力与使用局限,本文无任何商业合作,不区…
📅 2026/7/30 6:31:47
说实话,刚开始搞跨境那会儿,我是真有点头大。每天睁眼就是时差、语言、还有那一堆乱七八糟的合规问题,搞得我头发都快掉光了。那时候我就在想,要是能有个靠谱的工具或者平台,能帮我把这些杂七杂八的事儿理顺了,该多省心啊。后来朋友给我安利了geo365online.cn,我抱着半信…
📅 2026/7/30 7:41:00
1. 项目概述:从赛题到解题的完整拆解 2021年的全国大学生数学建模竞赛C题,题目是“生产企业原材料的订购与运输”,这是一个典型的运筹优化与数据分析结合的题目,对参赛者的建模能力、编程实现和论文写作都提出了很高的要求。问题一…
📅 2026/7/30 7:40:41
1. SSM选课系统项目概述 这个基于SSM框架的选课系统源码,是我在指导计算机专业毕业设计过程中反复打磨的一个经典案例。不同于市面上那些东拼西凑的"毕业设计代做"项目,这个40122号源码从数据库设计到前端交互都遵循企业级开发规范,…
📅 2026/7/30 7:40:41
1. 项目概述:为什么RelativeLayout依然是Android布局的“定海神针”? 在Android开发的世界里,布局就像盖房子的图纸,决定了每个UI组件(砖瓦)应该放在哪里。从早期的LinearLayout、RelativeLayout࿰…
📅 2026/7/30 7:40:41
1. 项目概述:为什么DLL导出是C开发者的必修课 在Windows平台上摸爬滚打多年的C开发者,几乎没人能绕开DLL(动态链接库)这道坎。无论是为了模块化设计、代码复用,还是为了实现插件化架构,DLL都是核心的技术载…
📅 2026/7/30 7:40:41
1. 项目缘起:从“能玩”到“好玩”的扫雷进化之路 几年前,当我第一次用C语言实现扫雷时,那个版本充其量只能算个“教学演示版”。它具备了扫雷的基本规则:布雷、插旗、点开格子。但玩起来总感觉少了点什么——点开一个空白格子后&…
📅 2026/7/30 7:40:41
本文关键词:geo2是共价化合物哎,说实话,每次看到化学题里那些弯弯绕绕的电子式,我就头大。特别是遇到那种非要让你判断是离子还是共价的,心里就发毛。今天咱不整那些虚头巴脑的定义,就聊聊二氧化硅,也就是大家常说的硅石、石英,很多人会误写成geo2,虽然化学式不对,但…
📅 2026/7/30 0:00:24
B4557 [GESP202606 四级] 扫雷 https://www.luogu.com.cn/problem/B4557 中国计算机学会(CCF)2026年6月C四级讲解——扫雷 https://www.bilibili.com/video/BV1MCMg6AEXR/ B4557 [GESP202606 四级] 扫雷 https://www.bilibili.com/video/BV1ZKTj6ZEVh/ 2…
📅 2026/7/30 0:00:26
Windows驱动存储终极清理工具:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer
您是否曾因Windows系统盘空间不足而烦恼?是否遇到过设…
📅 2026/7/30 0:00:26
更多请点击:
https://codechina.net
第一章:AI帮助理解数学概念 人工智能正以前所未有的方式重塑数学学习的路径。通过自然语言处理与符号计算的深度融合,AI不仅能解析抽象定义,还能将定理、证明和几何直觉转化为可交互、可验证的…
📅 2026/7/30 1:16:07
1. 项目背景与核心价值去年参与的一个短剧项目让我深刻体会到传统创作流程的痛点:编剧团队花了三周打磨剧本,角色设计反复修改了七版,最后成片时又因为演员档期问题不得不临时调整分镜。这种低效的创作模式在快节奏的内容行业越来越难以为继。…
📅 2026/7/30 1:16:07
remix-i18next TypeScript类型安全实践:确保翻译键与类型定义同步 【免费下载链接】remix-i18next The easiest way to translate your React Router framework mode apps 项目地址: https://gitcode.com/gh_mirrors/re/remix-i18next
在开发多语言应用时&am…
📅 2026/7/30 1:16:07
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/30 7:16:27
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/29 17:15:46
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/30 5:16:22