洗礼灵魂,修炼python(16)--列表进阶话题—>上节作业讲解+copy模块,浅拷贝,深拷贝

上节课后作业:

1.使用列表解析输出结果:[(0,0),(0,2),(2,0),(2,2)]

方法1:

方法2:

方法3:

 

2.使用列表生成器打印斐波那契数列

 

3.使用列表解析生成列表[1x2,3x4,5x6,7x8,…,99x100]

 

4.利用3层for循环的列表生成式,找出对称的3位数,例如:121等从左到右从又到左还是原来的对称数

 

5.编写一个函数,它接受一个list,然后把list中的所有字符串变成大写后返回,非字符串元素将被忽略

如果按照平常写法是这样:

 

按照列表解析就简单很多:

注意,此时并没有对原列表更改

 

copy模块:

1.什么是copy

前面在列表分片的时候稍微提了一下关于拷贝(复制),在这一章将详细介绍关于拷贝的copy模块

2.作用

做数据备份,稍微了解运维的都应该听过完全备份和增量备份吧?其实这里就使用了拷贝,所以在实际运用中,拷贝是很常用的

3.函数(方法):

看到这些方法,其实相比于前面的,其实并不多对吧?忽略带有特殊功能的方法,其实也就几个对吧?

然而这个模块最常用的就是copy和deepcopy方法,其他基本很少用,所以直接略过

copy:这个方法就是简单意义上的拷贝,和常识里的拷贝差不多,它又另一个名称叫【浅拷贝】(或者浅复制),换句话就是对父类对象引用的拷贝

例:

 

deepcopy:这个方法就厉害了,这个比浅拷贝更牛一点,被叫做深拷贝(或深复制),换句话就是对对象的资源的拷贝

 

(如果看这个图解让你更费解,那么忽略即可,前面的文字说明我想已经够清楚了)

 

总结:

浅拷贝就是对原对象最外层的复制,如果有内层则是直接的引用

深拷贝是对原对象整个参数资源的复制,不管有内层与否,已经和原对象毫无关系

拷贝对于字符串和整形数与字典和列表的处理是不同的

其实是不是很简单?那么如果你还没懂,自己多练习

posted @ 2017-10-08 13:38  Eeyhan  阅读(219)  评论(0编辑  收藏  举报