Python之深拷贝和浅拷贝

一、浅拷贝(Shallow Copy)

含义:

  • 创建一个新对象,但只复制最外层容器
  • 内部的元素(如子列表、字典等)仍然是引用原对象中的元素,并未真正复制。

实现方式:

  1. 切片操作(仅适用于 list、tuple 等序列)

    new_list=old_list[:]
  2. 使用list()dict()set()构造函数

    new_list=list(old_list)new_dict=dict(old_dict)
  3. 使用copy模块的copy()函数(通用)

    importcopy new_obj=copy.copy(old_obj)

示例:

importcopy original=[[1,2],[3,4]]shallow=copy.copy(original)# 或 original[:]shallow[0][0]='X'print(original)# 输出: [['X', 2], [3, 4]] ← 被修改了!print(shallow)# 输出: [['X', 2], [3, 4]]

修改嵌套列表会影响原对象,因为内部列表是共享的。


二、深拷贝(Deep Copy)

含义:

  • 递归地复制对象及其所有嵌套的子对象。
  • 新对象与原对象完全独立,互不影响。

实现方式:

  • 必须使用copy模块的deepcopy()函数
    importcopy new_obj=copy.deepcopy(old_obj)

示例:

importcopy original=[[1,2],[3,4]]deep=copy.deepcopy(original)deep[0][0]='X'print(original)# 输出: [[1, 2], [3, 4]] ← 未被修改print(deep)# 输出: [['X', 2], [3, 4]]

修改深拷贝后的对象不会影响原始对象。


三、何时用浅拷贝 vs 深拷贝?

场景推荐
对象是简单的一维列表/字典(不含嵌套可变对象)浅拷贝足够,效率高
对象包含嵌套的可变对象(如列表中含字典)且需要完全隔离必须用深拷贝
性能敏感且确定无嵌套引用优先用浅拷贝或切片

四、注意事项

  • 不可变对象(如 int, str, tuple):即使浅拷贝,修改“内部”也不可能(因为不可变),所以通常无需深拷贝。
  • 循环引用deepcopy能正确处理对象之间的循环引用,不会无限递归。
  • 性能deepcopycopy慢很多,尤其对大型嵌套结构。

总结

方法代码是否复制嵌套对象适用场景
浅拷贝copy.copy(x)x[:]❌ 否简单结构、性能优先
深拷贝copy.deepcopy(x)✅ 是嵌套结构、需完全独立

合理选择拷贝方式,既能避免意外副作用,又能保持程序效率。


自此,本文分享到此结束!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1153191.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Transformer推理显存优化全解析,掌握这7种技术轻松部署百亿模型

第一章:大模型推理显存优化在大模型推理过程中,显存占用往往成为部署的瓶颈。随着模型参数规模的增长,仅存储模型权重就可能消耗数十GB显存,严重限制了在边缘设备或低成本GPU上的应用。为缓解这一问题,业界提出了多种显…

AMD Ryzen调试终极指南:5个简单步骤释放处理器隐藏性能

AMD Ryzen调试终极指南:5个简单步骤释放处理器隐藏性能 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://g…

抖音视频批量下载终极指南:轻松打造个人专属素材库

抖音视频批量下载终极指南:轻松打造个人专属素材库 【免费下载链接】douyinhelper 抖音批量下载助手 项目地址: https://gitcode.com/gh_mirrors/do/douyinhelper 还在为抖音优质内容无法批量保存而烦恼?这款强大的抖音批量下载工具将成为你的得力…

Qwen2.5-0.5B-Instruct实测:JSON生成与表格理解能力展示

Qwen2.5-0.5B-Instruct实测:JSON生成与表格理解能力展示 1. 引言 随着大语言模型在实际业务场景中的广泛应用,结构化数据处理能力逐渐成为衡量模型实用性的重要指标。无论是将自然语言指令转化为可执行的 JSON 配置,还是从复杂表格中提取关…

亲测Qwen2.5-0.5B-Instruct:网页推理效果超预期,附完整体验报告

亲测Qwen2.5-0.5B-Instruct:网页推理效果超预期,附完整体验报告 1. 引言:轻量级模型也能有惊艳表现? 在大模型“军备竞赛”愈演愈烈的今天,动辄7B、72B参数的模型让人望而生畏。然而,并非所有场景都需要“…

GLM-4.6V-Flash-WEB真实项目案例:智能文档识别系统搭建

GLM-4.6V-Flash-WEB真实项目案例:智能文档识别系统搭建 智谱最新开源,视觉大模型。 1. 引言:为何选择GLM-4.6V-Flash-WEB构建智能文档识别系统? 1.1 业务背景与技术挑战 在企业级办公自动化、金融票据处理、教育资料数字化等场景…

传统vs现代:三极管电路设计效率对比实验

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 请分别用传统方法和AI辅助方法设计一个三极管LED驱动电路,驱动5个并联的LED(20mA每个)。比较两种方法所需时间、电路性能和设计过程差异&#x…

AI如何解决Pinia状态管理中的常见错误

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个Pinia状态管理示例项目,展示如何正确初始化Pinia实例以避免getActivePinia() was called but there was no active Pinia错误。项目应包含Vue 3组件演示&#…

抖音视频批量下载工具深度评测:小白也能轻松掌握的高效方案

抖音视频批量下载工具深度评测:小白也能轻松掌握的高效方案 【免费下载链接】douyinhelper 抖音批量下载助手 项目地址: https://gitcode.com/gh_mirrors/do/douyinhelper 在短视频内容日益丰富的今天,如何快速批量保存抖音视频成为许多用户的迫切…

智能打码系统实战案例:基于MediaPipe的隐私保护方案

智能打码系统实战案例:基于MediaPipe的隐私保护方案 1. 引言:AI 人脸隐私卫士 —— 智能自动打码的时代到来 随着社交媒体和数字影像的普及,个人隐私泄露风险日益加剧。一张看似普通的合照,可能无意中暴露了他人面部信息&#x…

AI人脸隐私卫士技术解析:动态打码实现步骤详解

AI人脸隐私卫士技术解析:动态打码实现步骤详解 1. 技术背景与核心挑战 随着社交媒体和数字影像的普及,个人隐私保护问题日益突出。在多人合照、公共监控截图或用户上传内容中,未经处理的人脸信息极易造成隐私泄露。传统的手动打码方式效率低…

V2EX社区运营实战:如何利用AI提升用户活跃度

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个V2EX社区运营助手,能够自动分析社区热门话题,生成吸引人的讨论标题和内容。工具需支持实时监控V2EX的热门帖子,提取关键词,…

AI人脸隐私卫士实战:处理多人合照的完整流程

AI人脸隐私卫士实战:处理多人合照的完整流程 1. 引言:为何需要智能人脸自动打码? 随着社交媒体和数字影像的普及,个人面部信息泄露风险急剧上升。一张看似普通的多人合照,可能在不经意间暴露了朋友、家人甚至陌生人的…

Vue路由小白必看:this.$router.push从入门到精通

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个面向Vue新手的教学项目,逐步解释this.$router.push:1)创建基础Vue路由环境;2)最简单的跳转示例;3)添加路由参数演示&#x…

Qwen3-4B功能测评:256K上下文+FP8量化的真实表现

Qwen3-4B功能测评:256K上下文FP8量化的真实表现 1. 引言:轻量级大模型的“能力跃迁”时代来临 在当前AI模型向更大参数规模演进的同时,轻量级大模型(4B级别)正经历一场深刻的“能力跃迁”。传统认知中,小…

Z-Image绘画低成本入门:云端GPU按小时付费,零风险

Z-Image绘画低成本入门:云端GPU按小时付费,零风险 引言:毕业设计新选择 作为一名即将面临毕业设计的大学生,你是否遇到过这样的困境:想用AI绘画技术为作品增色,却担心本地电脑配置不够?不确定…

动物骨骼检测奇技:用人体模型迁移学习

动物骨骼检测奇技:用人体模型迁移学习 引言:当老虎遇上人体骨骼模型 想象一下,你是一位野生动物研究者,正试图通过视频分析老虎的运动姿态。但很快发现一个问题:现有的动物骨骼数据集稀少且标注成本极高,…

Z-Image企业内训:人均1元成本的AI创作课

Z-Image企业内训:人均1元成本的AI创作课 1. 为什么企业需要AI创作培训 在数字化转型浪潮中,视觉内容创作已成为企业刚需。传统方式需要专业设计师,成本高、周期长。Z-Image作为阿里巴巴开源的中英双语图像生成模型,让普通员工也…

3个真实案例告诉你:RPA与Python协同如何颠覆传统工作流

第一章:3个真实案例告诉你:RPA与Python协同如何颠覆传统工作流 在数字化转型浪潮中,RPA(机器人流程自动化)与Python的深度协同正悄然重塑企业的工作流模式。通过结合RPA的界面操作能力与Python强大的数据处理、算法支持…

人脸检测模型更新策略:保持高精度的维护方案

人脸检测模型更新策略:保持高精度的维护方案 1. 背景与挑战:AI时代下的隐私保护刚需 随着社交媒体、智能监控和图像共享平台的普及,个人面部信息暴露风险急剧上升。一张未经处理的合照可能包含数十人的生物特征数据,一旦泄露&am…