Python 浅拷贝  深拷贝
浅拷贝与深拷贝直接赋值对象的引用别名不产生拷贝浅拷贝拷贝父对象不会拷贝对象的内部的子对象。拷贝后只有第一层是独立的深拷贝完全拷贝了父对象及其子对象。拷贝后所有层都是独立的。方式是否生成新父对象是否拷贝嵌套子对象数据独立性适用场景直接赋值否否完全不独立仅需引用对象无需修改数据浅拷贝是否第一层独立深层不独立对象无嵌套可变元素追求高效深拷贝是是递归所有层级完全独立对象存在嵌套可变元素需要数据隔离如何浅拷贝列表切片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 深拷贝完全独立

相关新闻

Days 9 函数初学

Days 9 函数初学

一、为什么要学函数?刚学 C 语言的时候,所有代码全堆在main里,写重复功能要复制粘贴一大段,代码又乱又难改。函数就是用来解决这个问题的! 函数两大好处:代码复用:同一个功能只写一次&#xff0…

2026/7/30 6:30:38阅读更多 →
万能代码模板:30行实现核心功能的高效开发

万能代码模板:30行实现核心功能的高效开发

1. 项目概述:为什么我们需要万能代码模板?在编程领域,我们经常会遇到一些重复性的功能需求。比如数据验证、文件操作、网络请求等基础功能,几乎每个项目都会用到。每次从零开始写这些代码不仅效率低下,还容易引入错误。…

2026/7/30 6:30:38阅读更多 →
Unity VR投掷游戏开发实战:SteamVR集成与桌面模拟模式详解

Unity VR投掷游戏开发实战:SteamVR集成与桌面模拟模式详解

1. 项目概述与核心价值最近在整理过往项目资料时,翻出了一个基于Unity 2021 LTS开发的VR投掷小游戏完整源码包。这个项目麻雀虽小,五脏俱全,它不仅完整实现了核心的投掷玩法,更关键的是,它从一开始就设计为支持SteamVR…

2026/7/30 6:30:38阅读更多 →
图新说体积测量:填挖方一键计算与土方平衡分析实战

图新说体积测量:填挖方一键计算与土方平衡分析实战

如果你是一名测绘工程师,或者经常需要处理地形数据,那么你一定遇到过这样的痛点:想要快速计算一个区域的土方量,却要在CAD、GIS软件和各种计算工具之间反复切换,最后还要手动整理数据报表。整个过程不仅耗时耗力&#…

2026/7/30 11:21:57阅读更多 →
戴尔G15散热控制终极指南:开源替代方案完全解析

戴尔G15散热控制终极指南:开源替代方案完全解析

戴尔G15散热控制终极指南:开源替代方案完全解析 【免费下载链接】tcc-g15 Thermal Control Center for Dell G15 - open source alternative to AWCC 项目地址: https://gitcode.com/gh_mirrors/tc/tcc-g15 你是否为戴尔G15笔记本的过热问题而烦恼&#xff1…

2026/7/30 11:21:57阅读更多 →
MagnaCut高端刀具钢:化学成分、热处理与一体手柄彩纤镶嵌应用

MagnaCut高端刀具钢:化学成分、热处理与一体手柄彩纤镶嵌应用

这次我们来看一个关于高端刀具材料的深度技术解析——MagnaCut(圈内简称MC)。作为目前综合性能最强的均衡型高端刀钢,MagnaCut真正解决了传统不锈钢领域长期存在的"耐磨则脆、防锈差、韧性低"三大技术短板。本文将重点分析MC钢的化…

2026/7/30 11:21:57阅读更多 →
AI生成SQL为何越优化越慢?揭秘LLM在JOIN、子查询、索引选择上的3大认知盲区(附可落地的校验清单)

AI生成SQL为何越优化越慢?揭秘LLM在JOIN、子查询、索引选择上的3大认知盲区(附可落地的校验清单)

更多请点击: https://intelliparadigm.com 第一章:AI生成SQL为何越优化越慢?揭秘LLM在JOIN、子查询、索引选择上的3大认知盲区(附可落地的校验清单) 大型语言模型在生成SQL时,常因缺乏数据库运行时上下文而…

2026/7/30 11:21:57阅读更多 →
JetBrains IDE试用重置终极指南:简单免费延长30天使用期限

JetBrains IDE试用重置终极指南:简单免费延长30天使用期限

JetBrains IDE试用重置终极指南:简单免费延长30天使用期限 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 还在为JetBrains IDE的30天试用期到期而烦恼吗?ide-eval-resetter是一款专门为Je…

2026/7/30 11:21:57阅读更多 →
抖音直播数据采集实战:解密实时弹幕抓取的核心技术

抖音直播数据采集实战:解密实时弹幕抓取的核心技术

抖音直播数据采集实战:解密实时弹幕抓取的核心技术 【免费下载链接】DouyinLiveWebFetcher 抖音直播间网页版的弹幕数据抓取(2025最新版本) 项目地址: https://gitcode.com/gh_mirrors/do/DouyinLiveWebFetcher 在直播电商和内容创作日…

2026/7/30 11:19:57阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/29 9:47:45阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/29 7:00:19阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/29 7:58:51阅读更多 →
3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 [特殊字符]

3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 [特殊字符]

3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 🚀 【免费下载链接】TrollInstallerX A TrollStore installer for iOS 14.0 - 16.6.1 项目地址: https://gitcode.com/gh_mirrors/tr/TrollInstallerX 你是否曾经因为iOS系统的严格…

2026/7/30 0:00:58阅读更多 →
[GESP202606 四级] 扫雷

[GESP202606 四级] 扫雷

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:58阅读更多 →
Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 您是否曾因Windows系统盘空间不足而烦恼?是否遇到过设…

2026/7/30 0:00:58阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/30 0:27:26阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/30 4:47:18阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/29 14:26:42阅读更多 →