python中的深拷贝和浅拷贝,python深拷贝 浅拷贝

  python中的深拷贝和浅拷贝,python深拷贝 浅拷贝

  本文主要介绍Python列表的浅层拷贝和深层拷贝。列表的深层复制意味着无论你如何改变新列表,原始列表在一个维度或多维度都保持不变。有需要的可以参考以下详情。

  00-1010 1.浅层拷贝(两者都只对第一层做深层拷贝)1。在第二回合中进行循环赋值。使用copy()函数3。使用列表生成公式4。使用索引[3360] 2。深层复制到列表深层复制是指无论你如何改变新列表(一维或多维),原列表都保持不变。

  下面的浅层拷贝,对于多维列表来说,只是第一维的深层拷贝(嵌套列表存储的是地址,拷贝的时候地址也被拷贝了),所以内部的列表元素发生了变化,原来的列表也会发生变化。

  

目录

  

一、浅拷贝(均是只对第一层进行深拷贝)

  旧=[1,[1,2,3],3]

  new=[]

  对于范围内的I(len(old)):

  new.append(旧[i])

  new[0]=3

  new[1][0]=3

  打印(旧)

  打印(新)

  [1, [3, 2, 3], 3]

  [3, [3, 2, 3], 3]

  

1. for循环依次赋值

  旧=[1,[1,2,3],3]

  new=old.copy()

  new[0]=3

  new[1][0]=3

  打印(旧)

  打印(新)

  输出:

  [1, [3, 2, 3], 3]

  [3, [3, 2, 3], 3]

  

2. 使用copy()函数

  旧=[1,[1,2,3],3]

  new=[i for i in old]

  new[0]=3

  new[1][0]=3

  打印(旧)

  打印(新)

  输出:

  [1, [3, 2, 3], 3]

  [3, [3, 2, 3], 3]

  

3. 使用列表生成式

  旧=[1,[1,2,3],3]

  新=旧[:]

  new[0]=3

  new[1][0]=3

  打印(旧)

  打印(新)

  输出:

  [1, [3, 2, 3], 3]

  [3, [3, 2, 3], 3]

  浅拷贝对于单层列表就是深拷贝,如:

  旧=[1,2,3]

  新=旧[:]

  new[0]=666

  打印(旧)

  打印(新)

  [1, 2, 3]

  [666, 2, 3]

  

4. 使用索引 [:]

  使用用deepcopy()方法,才是真正的复制了一个全新的和原列表无关的:

  导入副本

  旧=[1,[1,2,3],3]

  new=copy.deepcopy(旧)

  new[0]=3

  new[1][0]=3

  [1, [1, 2, 3], 3]

  [3, [3, 2, 3], 3]

  关于Python列表的浅拷贝和深拷贝的这篇文章到此为止。更多关于Python的浅拷贝和深拷贝,请搜索热门IT软件开发工作室之前的文章或者继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: