列表(三)-深浅拷贝

赋值:修改原列表会影响赋值列表

浅拷贝:只拷贝列表的最外层,内部全部引用,修改最外层列表,不会影响,修改内层对象会影响浅拷贝对象。

深拷贝:拷贝所有可变类型,原列表 不影响深拷贝对象

l1 = [1,2,3,[4,5]]
print(id(l1))

# 赋值操作:改变其中一个,会影响另一个变量
l2 = l1

# 浅拷贝
l3 = l1.copy()

# 深拷贝
import copy
l4 = copy.deepcopy(l1)


l1.append(6)
print(l1)   # [1,2,3,[4,5],6]
print(l2)   # [1,2,3,[4,5],6]
print(l3)  #  [1,2,3,[4,5]]
print(l4)  #  [1,2,3,[4,5]]

l1[3].append(6)

print(l1)  # [1,2,3,[4,5,6]]
print(l2)  # [1,2,3,[4,5,6]]
print(l3) # [1,2,3,[4,5,6]]
print(l4)  # [1,2,3,[4,5]]

图解


赋值: l1.append(6)

赋值:l1[3].append(6)

浅拷贝: l1.append(6)

浅拷贝:l1[3].append(6)

深拷贝 : l1.append(6)

深拷贝:l1[3].append(6)

posted @   小杜打醋尢买布  阅读(75)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示