苦练Python第30天:浅拷贝 VS 深拷贝

前言

大家好,我是倔强青铜三 。欢迎关注我,微信公众号:倔强青铜三。欢迎点赞、收藏、关注,一键三连!!!

欢迎来到 Python百日计划第30天

恭喜你已达成 三分之一 里程碑!🎉

今天我们要攻克一个让许多 Python 学习者抓耳挠腮的核心概念:
列表的复制与克隆 ------ 浅拷贝 vs 深拷贝

掌握它们,你就不会在复杂数据结构中踩坑。


🎯 今日收获预览

  • 赋值、浅拷贝、深拷贝的本质区别
  • 列表在内存中的真实复制过程
  • 实战代码与常见陷阱
  • 何时用浅拷贝、何时用深拷贝的决策指南

📦 赋值 ≠ 复制

先认清一个残酷事实:

python 复制代码
a = [1, 2, 3]
b = a

你以为 b 是新列表?错!它只是 同一对象的新引用

python 复制代码
b.append(4)
print(a)  # [1, 2, 3, 4]

因为 ab 指向 同一片内存


✂️ 真正复制列表的 3 种姿势

方法 语法示例
list() 构造 b = list(a)
切片 b = a[:]
.copy() 方法 b = a.copy()

以上三种都只能得到 浅拷贝


🌊 浅拷贝:只复制外壳,不复制内脏

浅拷贝会新建一个外层列表,但 内嵌对象仍共享引用

🔁 示例:修改嵌套列表

python 复制代码
a = [[1, 2], [3, 4]]
b = a.copy()

b[0][0] = 999
print(a)   # [[999, 2], [3, 4]]

为什么 a 也被改了?

因为 a[0]b[0] 指向 同一个内部列表


🧬 深拷贝:连内脏都克隆

使用标准库 copydeepcopy 可彻底斩断引用链。

✅ 深拷贝示例

python 复制代码
import copy

a = [[1, 2], [3, 4]]
b = copy.deepcopy(a)

b[0][0] = 999
print(a)  # [[1, 2], [3, 4]]
print(b)  # [[999, 2], [3, 4]]

此时 ab 完全独立,任意层级改动互不干扰。


🔍 何时用什么?快速决策表

场景 推荐做法
仅含数字/字符串的扁平列表 浅拷贝 a[:] 足够
含嵌套列表或自定义对象 深拷贝 copy.deepcopy(a)
只想共享数据、不复制 直接赋值 b = a

🧪 现实类比:钥匙、房间与家具

  • 赋值 (=):把自家钥匙给别人,房子还是同一套。
  • 浅拷贝:把房间复制一份,但家具仍共用。
  • 深拷贝:连房子带家具全部重建一套新的。

💡 常见坑位提醒

  1. 误以为 .copy() 会递归克隆 ------ 不会!
  2. 改了嵌套列表,原列表同步变 ------ 99% 是浅拷贝惹祸。
  3. 无脑 deepcopy ------ 大对象会拖慢程序,按需使用。

🧭 今日小结

  • 赋值只是引用,不会复制数据
  • 浅拷贝复制外层,内层共享
  • 深拷贝递归复制,彻底隔离
  • copy.deepcopy() 解决嵌套引用问题

最后感谢阅读!欢迎关注我,微信公众号倔强青铜三。欢迎点赞收藏关注,一键三连!!!

相关推荐
lixzest3 小时前
快速梳理遗留项目
java·c++·python
xnglan3 小时前
使用爬虫获取游戏的iframe地址
开发语言·爬虫·python·学习
cwn_4 小时前
Sequential 损失函数 反向传播 优化器 模型的使用修改保存加载
人工智能·pytorch·python·深度学习·机器学习
老鱼说AI4 小时前
Transformer Masked loss原理精讲及其PyTorch逐行实现
人工智能·pytorch·python·深度学习·transformer
我是苏苏4 小时前
Pytorch01:深度学习中的专业名词及基本介绍
人工智能
空中湖4 小时前
PyTorch武侠演义 第一卷:初入江湖 第5章:玉如意的秘密
人工智能·pytorch·neo4j
lxmyzzs4 小时前
【已解决】YOLO11模型转wts时报错:PytorchStreamReader failed reading zip archive
人工智能·python·深度学习·神经网络·目标检测·计算机视觉·bug
Blossom.1185 小时前
基于深度学习的图像分类:使用预训练模型进行迁移学习
人工智能·深度学习·目标检测·分类·音视频·语音识别·迁移学习
kupeThinkPoem6 小时前
OpenAI最新大模型GPT-4o体验之Code Copilot AI编程大模型
人工智能·ai编程
XINERTEL6 小时前
解锁高品质音频体验:探索音频质量评估与测试的科学之道
人工智能·音视频·语音识别·音视频质量测试