'''
深浅复制
1.常见的复制方法:
深copy copy.deepcopy()
浅copy copy.copy()
面试 - 深浅copy的区别
>.深浅copy都是用来复制具备嵌套结构可变元素到列表的方式
>.浅copy只复制第一层,嵌套的元素共享一块内存空间
>.深copy完全复制,与源列表没有任何关系,完全独立
>.深copy采用递归的形式依次copy所有嵌套元素
>.深copy内存使用量大速度较慢,浅copy速度较快且共享地址
'''
from copy import deepcopy
# 1.常见的复制方法
test_list1 = [1, 2, 3]
print("源列表:",test_list1) #源列表: [1, 2, 3]
# 切片
print("切片:",test_list1[:]) #切片: [1, 2, 3]
# list.copy()
print("list.copy:",list.copy(test_list1)) #list.copy: [1, 2, 3]
#导入内置模块copy
import copy
# 浅copy
print("浅copy:",copy.copy(test_list1)) #浅copy: [1, 2, 3]
# 深copy
print("深copy:",deepcopy(test_list1)) #深copy: [1, 2, 3]
# 2.区别
test_list2 = [[100,200],[300,400],[400,500]]
print(test_list2[1]) #[300, 400]
print(test_list2[1][1]) #400
res1 = copy.copy(test_list2)
res1[0][0] = 888
print("浅copy:",res1) # 浅copy: [[888, 200], [300, 400], [400, 500]]
print("源列表:",test_list2) # 源列表: [[888, 200], [300, 400], [400, 500]]
print(id(res1)) #2295848862272
print(id(test_list2)) #1972560430528
test_list3 = [[100,200],[300,400],[400,500]]
res1 = copy.deepcopy(test_list3)
res1[0][0] = 888
print("源列表:",test_list3) # 源列表: [[100, 200], [300, 400], [400, 500]]
print("深copy:",res1) # 深copy: [[888, 200], [300, 400], [400, 500]]
'''
由此可见深copy完全复制源列表,而浅copy只复制了第一二层,最后一层与源列表共用,所以一旦修改源列表也被修改了
'''
深浅复制
讨喜Dobi2025-10-23 17:26
相关推荐
寒水馨22 分钟前
Windows下载、安装ollama-v0.32.1(附安装包OllamaSetup.exe)王维同学2 小时前
[原创][Windows C++]Explorer Shell 扩展、图标覆盖与 COM 服务器定位广州灵眸科技有限公司12 小时前
xfce桌面触摸校准:基于灵眸科技EASY-EAl-Orin-NanoCtrl+Z侠17 小时前
.NET WebApi Windows / Linux Docker 全链路压测与瓶颈定位 0 到 1 教程王维同学18 小时前
[原创][Windows C++]LSA 认证、安全与通知包的注册表枚举YCOSA202519 小时前
雨晨 Windows 11 IOT 企业版 LTSC 24H2 轻装 2合1 26100.8968汤姆yu19 小时前
CodeGeeX 4完整安装与实操使用全指南吐了啊取名字太难1 天前
美颜系统AI修图本地跑并支持Mac、win、安卓、iOS不卡顿筱羽_筱羽1 天前
VS2022 编译SOEMlove530love1 天前
【排障实录】GPT Desktop (Codex) 开启 WSL 智能体模式后无法启动?手把手教你修复