首页 > 编程语言 >Python高级-深拷贝、浅拷贝-笔记

Python高级-深拷贝、浅拷贝-笔记

时间:2022-12-01 10:32:41浏览次数:32  
标签:11 22 Python 笔记 拷贝 copy id Out

1. 浅拷贝

  • 浅拷贝是对于一个对象的顶层拷贝

Python高级-深拷贝、浅拷贝-笔记 _深拷贝

通俗的理解是:拷贝了引用,并没有拷贝内容

2. 深拷贝

  • 深拷贝是对于一个对象所有层次的拷贝(递归)

Python高级-深拷贝、浅拷贝-笔记 _浅拷贝_02

进一步理解深拷贝

 

Python高级-深拷贝、浅拷贝-笔记 _深拷贝_03

3. 拷贝的其他方式

  • 分片表达式可以赋值一个序列

Python高级-深拷贝、浅拷贝-笔记 _深拷贝_04

  • 字典的copy方法可以拷贝一个字典

Python高级-深拷贝、浅拷贝-笔记 _浅拷贝_05

4. 注意点

浅拷贝对不可变类型和可变类型的copy不同

  1. copy.copy对于可变类型,会进行浅拷贝
  2. copy.copy对于不可变类型,不会拷贝,仅仅是指向
In [88]: a = [11,22,33]
In [89]: b = copy.copy(a)
In [90]: id(a)
Out[90]: 59275144
In [91]: id(b)
Out[91]: 59525600
In [92]: a.append(44)
In [93]: a
Out[93]: [11, 22, 33, 44]
In [94]: b
Out[94]: [11, 22, 33]


In [95]: a = (11,22,33)
In [96]: b = copy.copy(a)
In [97]: id(a)
Out[97]: 58890680
In [98]: id(b)
Out[98]: 58890680

Python高级-深拷贝、浅拷贝-笔记 _深拷贝_06

copy.copy和copy.deepcopy的区别

copy.copy

 

Python高级-深拷贝、浅拷贝-笔记 _深拷贝_07

Python高级-深拷贝、浅拷贝-笔记 _浅拷贝_08

copy.deepcopy

 

Python高级-深拷贝、浅拷贝-笔记 _浅拷贝_09

Python高级-深拷贝、浅拷贝-笔记 _浅拷贝_10

标签:11,22,Python,笔记,拷贝,copy,id,Out
From: https://blog.51cto.com/chen8866/5901280

相关文章

  • Python高级-深拷贝、浅拷贝-笔记
    私有化xx:公有变量_x:单前置下划线,私有化属性或方法,fromsomemoduleimport*禁止导入,类对象和子类可以访问__xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直......
  • Python高级-import导入模块-笔记
    1.import搜索路径路径搜索从上面列出的目录里依次查找要导入的模块文件''表示当前路径列表中的路径的先后顺序代表了python解释器在搜索模块时的先后顺序程序执行时添加......
  • 重构:改善既有代码的设计 第八章 读书笔记
    第8章搬移特性8.1搬移函数(MoveFunction)在对象之间搬移函数;8.2搬移字段(MoveField)在对象之间搬移字段;8.3搬移语句到函数(MoveStatementsintoFu......
  • cs231n学习笔记——Lecture2 Image Classification
    该博客主要用于个人学习记录,部分内容参考自李飞飞笔记、cs231n计算机视觉课程笔记、图像识别算法(一)、cs231n笔记2—线性分类一、图像识别ImageClassification1、在......
  • python知识点
    一、pip工具常用的子命令1、install,用于安装库;2、download,用于下载库;3、uninstall,用于卸载库;4、freeze,用以requirements格式导出安装包;5、show,查看某个包的信息6、li......
  • python中getopt()函数用法
    通过getopt模块中的getopt()方法,我们可以获取和解析命令行传入的参数一、函数用法getopt(args,shortopts,longopts=[])args:固定写法sys.argv[1:]shortopts:短参......
  • 关于python的copy模块内的浅拷贝和深拷贝
    Python中赋值语句不复制对象,而是在目标和对象之间创建绑定(bindings)关系,即复制的是对象的引用。对于自身可变(如列表)或者包含可变项的集合对象(如嵌套列表),有必要生成......
  • 原码反码和补码的区别及用法笔记
    之前学习原码、反码、补码的时候就学的很懵,知道反码和补码怎么算的,但是不知道有什么用。今天看了几个视频,虽然有举例,但是自己换了个数就算不出来了。后来终于弄明白了。......
  • HCIA学习笔记四十六:NAT服务器
    一、NAT服务器• 通过配置NAT服务器,可以使外网用户访问内网服务器。二、NAT服务器配置三、配置验证四、NAT服务器实验4.1、拓扑图•分别在路由器中拖出2台AR222......
  • 微信小程序开发笔记 - 路由导航
    路由导航目录路由导航1.声明式路由导航1.1声明式后退导航1.2声明式导航传参2.编程式路由导航2.1编程式后退导航2.3编程式导航传参1.声明式路由导航navigator标签......