• 洗礼灵魂,修炼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:这个方法就厉害了,这个比浅拷贝更牛一点,被叫做深拷贝(或深复制),换句话就是对对象的资源的拷贝

     

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

    总结:

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

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

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

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

  • 相关阅读:
    前端与算法 leetcode 344. 反转字符串
    JavaScript闭包使用姿势指南
    前端与算法 leetcode 48. 旋转图像
    前端与算法 leetcode 36. 有效的数独
    前端与算法 leetcode 1. 两数之和
    前端与算法 leetcode 283. 移动零
    前端与编译原理 用js去运行js代码 js2run
    前端与算法 leetcode 66. 加一
    前端与算法 leetcode 350. 两个数组的交集 II
    前端与算法 leetcode 26. 删除排序数组中的重复项
  • 原文地址:https://www.cnblogs.com/Eeyhan/p/7636976.html
Copyright © 2020-2023  润新知