每天分享

2018/7/31 

1.深浅copy:

 

总结:

字符串中:

  • 对于赋值操作而言:所有的赋值操作都是公用的一个内存地址。
  • 如果改变了原有的数值的值,被赋值的变量的内存地址并不会发生变化,而改变了值的内存地址会发生变化。

 

在列表中:

  • 对于列表的赋值操作:所有的赋值操作都是公用的一个内存地址,一个变量发生变化,另一个变量随之发生变化。内存地址依旧相同。
  • 序列对象的切片其实是浅拷贝,即只拷贝顶级的对象
  • 列表中的浅拷贝:原list变量的第一层,之后对新变量或者旧变量的第一层的修改不会影响到彼此,第二层以及更多层之间则是像第一中操作中一样,是互相影响的。
  • 列表中的深拷贝:复制出来的与原来的变量没有任何关系,最清爽的复制

在元组中:

  没有深浅copy

在集合中:

  只有浅copy,和原来的集合对象没有任何关系

在字典中:

  • 赋值操作也是浅copy
  • 如果源拷贝对象只有一级目录的话,源做任何改动,不影响深浅拷贝对象
  • 如果源拷贝对象不止一级目录的话,源对一级目录的子目录做任何改动,都会影响浅拷贝,但不影响深拷贝
深copy的使用方式:

import copy
data = {'user':'admin','num':[1,2,3]}
data2 = data.copy()
// 深copy的使用方式 data3
= copy.deepcopy(data) print(data2) print(data3)

 


 


posted @ 2018-07-31 16:20  Coca-Mirinda  阅读(109)  评论(0编辑  收藏  举报