当前位置: 首页 > news >正文

做网站要找什么广东建设行业信息网

做网站要找什么,广东建设行业信息网,企业网站建设实训体会,三只松鼠的网站建设理念I. 简介 深拷贝会递归的创建一个完全独立的对象副本#xff0c;包括所有嵌套的对象#xff0c;而浅拷贝只复制嵌套对象的引用#xff0c;不复制嵌套对象本身。 简单来说就是两者都对原对象进行了复制#xff0c;因此使用is运算符来比较新旧对象时#xff0c;返回的都是F…I. 简介 深拷贝会递归的创建一个完全独立的对象副本包括所有嵌套的对象而浅拷贝只复制嵌套对象的引用不复制嵌套对象本身。 简单来说就是两者都对原对象进行了复制因此使用is运算符来比较新旧对象时返回的都是False(都开辟了新的内存)两者区别在于对嵌套对象有没有进行递归的复制。浅拷贝没有给嵌套对象复制并分配新内存用is来比较嵌套对象时返回的是True而深拷贝对嵌套对象开辟了进行了复制并分配新内存用is来比较嵌套对象时返回的是False。 一个例子如下我们分别对链表的头结点执行深拷贝与浅拷贝 # 原链表 ↓ a1 - b1 - c1 - d1 - e1 # 浅拷贝 ↓ 对于嵌套对象b1, c1, ..., 直接采用了原有引用 a2 - b1 - c1 - d1 - e1 # 深拷贝 ↓ 对于嵌套对象同样开辟了内存空间将其复制 a2 - b2 - c2 - d2 - e2从代码实现来讲深拷贝可以用copy库的deepcopy方法实现浅拷贝除了用copy库的copy方法还有许多其他的实现途径接下来我们将进行介绍。 II. 列表 A. 首先要注意一点对于常用的等号赋值操作这一操作并没有进行任何拷贝只是创建了对现有对象的一个新引用 arr1 [1, 2, 3, 4] arr2 arr1 print(arr2 is arr1) # True arr2[0] 0 print(arr1) # [0, 2, 3, 4]B. 对列表进行切片属于浅拷贝操作 arr1 [1, 2, 3, 4] arr2 arr1[:] print(arr2 is arr1) # False arr2[0] 0 print(arr1) # [1, 2, 3, 4]C. 浅拷贝并不会复制嵌套对象 arr1 [1, 2, 3, [4, 5, 6]] arr2 arr1[:] print(arr2 is arr1) # False(最外层被复制) print(arr2[-1] is arr1[-1]) # True(嵌套对象没有被复制) arr2[-1][0] 0 print(arr1) # [1, 2, 3, [0, 5, 6]](被修改)D. 深拷贝才会复制嵌套对象 import copy arr1 [1, 2, 3, [4, 5, 6]] arr2 copy.deepcopy(arr1) print(arr2 is arr1) # False print(arr2[-1] is arr1[-1]) # False(嵌套对象也被复制) arr2[-1][0] 0 print(arr1) # [1, 2, 3, [4, 5, 6]](未修改)E. 使用数据类型本身的构造器仍属于浅拷贝 arr1 [1, 2, 3, [4, 5, 6]] arr2 list(arr1) # 使用构造器创建新对象, 属于浅拷贝 print(arr2 is arr1) # False print(arr2[-1] is arr1[-1]) # True arr2[-1][0] 0 print(arr1) # [1, 2, 3, [0, 5, 6]]F. 对列表进行修改所返回的新列表也属于浅拷贝先浅拷贝再修改 arr1 [1, 2, 3, [4, 5, 6]] arr2 arr1 [] # 先浅拷贝再修改 print(arr2 is arr1) # False print(arr2[-1] is arr1[-1]) # True arr2[-1][0] 0 print(arr1) # [1, 2, 3, [0, 5, 6]]III. 字符串 A. Python中的字符串是不可变对象。因此如果对其进行完整切片[:]可以发现这一过程并没有对字符串本身进行修改。那么Python此时只会直接记录原字符串对象的引用不进行任何拷贝。从设计动机的角度理解既然本身不可修改并且进行的切片操作也没有进行修改那么复制的意义不大所以干脆不进行复制 s1 1234 s2 s1[:] print(s2 is s1) # True(引用的内容相同)B. 以上结论同样适用于对字符串进行假修改此时也不会进行任何拷贝 s1 1234 s2 s1 print(s2 is s1) # True(没有进行实质修改)C. 想要进行拷贝那就得对字符串进行实质修改。如果切片运算改变了原字符串的内容由于字符串是不可变的因此只能开辟一个新的内存来存储修改后的字符串。此时进行了拷贝过程。注意由于字符串本身没法嵌套对象因此这里不区分深拷贝与浅拷贝 s1 1234 s2 s1[::-1][::-1] # 进行两次修改翻转两次 print(s2 is s1) # False print(s2) # 1234 s3 s1 5 print(s3 is s1) # FalseD. 使用构造方法str也不会进行任何拷贝只是创建了另一个指向原字符串对象的引用 s1 1234 s2 str(s1) print(s2 is s1) # TrueE. 使用copy或deepcopy都不能对字符串内容进行拷贝只会新增一个引用 import copy s1 1234 s2 copy.copy(s1) s3 copy.deepcopy(s1) print(s2 is s1) # True print(s3 is s1) # True
http://www.w-s-a.com/news/811570/

相关文章:

  • 网站流量转化线下推广活动有哪些
  • 030159网站建设与维护宝安网站公司
  • 个人网站备案网站内容做gif表情包网站
  • 湖南省建设厅城乡建设网站怎么建立一个网站网址
  • 图书馆网站建设的规章制度免费个人主页注册
  • 表格网站源码wordpress更换网站域名
  • 芜湖做网站多少钱做公司的网站的需求有哪些
  • 玉溪网站建设制作凌风wordpress百度云
  • 专业建网站价格门户网站建设 请示
  • 安徽省省博物馆网站建设佛山公司网站设计
  • 温州专业营销网站公司网络建设规划
  • 做模型常说的d站是什么网站wordpress 繁體
  • 给网站做h5缓存机制获取小程序api
  • 网站开发文档东莞市建设网站首页
  • 公共空间设计网站企业门户网站建设教程
  • 网站建设公司 深圳镇江建设质量监督站网站
  • 网站底部版权怎么做软广告经典案例
  • 网站收录突然全部没有了东莞网站建设公司电话
  • 境外企业网站推广免费ppt元素
  • 2018网站建设行业广东网站seo
  • 网站后台加密云服务器2008做网站
  • dw制作一个环保网站模板下载吉安网站建设收费
  • 深圳珠宝网站设计北京高端网站建设优势
  • 合肥企业制作网站wordpress创建网站
  • 织梦网站开发兼职wordpress 中间截取缩略图
  • 南通制作网站旅游搭建网站
  • 专业做商铺的网站个人网页html模板完整代码
  • 什么网站做美食最好最专业关键词推广是什么意思
  • 自助建设网站软件网站导航网站可以做吗
  • 网站模板放哪长沙网站优化分析