• python基础-set集合,深浅拷贝


     一. 基础数据类型补充

      补充给 一个字符串基本操作

     

    列表:

      循环删除列表中的每 一个元素

     

    分析原因:

    for的运行过程. 会有 一个指针来记录当前循环的元素是哪 一个,  一开始这个指针指向第0个. 然后获取到第0个元素. 紧接着删除第0个. 这个时候. 原来是第 一个的元素会自动的变成第0个. 然后指针向后移动 一次, 指向1元素. 这时原来的1已经变成了0, 也就不会被删除了了.

      删除试试看:

     

    经过分析发现. 循环删除都不 行. 不论是用del还是 用remove. 都不能实现.那么pop呢?

    只有这样才是可以的:

     

    或者.  用另 一个列列表来记录你要删除的内容. 然后循环删除

     

    注意: 由于删除元素会导致元素的索引改变, 所以容易易出现问题. 尽量量不要再循环中直接去删除元素. 可以把要删除的元素添加到另 一个集合中然后再批量删除.

      dict中的fromkey(),可以帮我们通过list来创建 一个dict

     

    前面列表中的每 一项都会作为key, 后面列表中的内容作为value.  生成dict好了. 注意:

     

    代码中只是更改了jay那个列表. 但是由于jay和JJ 用的是同 一个列表. 所以. 前面那个改了. 后面那个也会跟着改

    dict中的元素在迭代过程中是不允许进行删除的

     

    那怎么办呢? 把要删除的元素暂时先保存在 一个list中, 然后循环list, 再删除

     

    类型转换:

    元组 => 列表    list(tuple)
    
    列表 => 元组    tuple(list)
    
    
    
    list=>str str.join(list)
    
    str=>list str.split()
    
     
    
    转换成False的数据:
    
    0,'',None,[],(),{},set() ==> False

     二. set集合

    set集合是python的 一个基本数据类型.  一般不是很常 用. set中的元素是不重复的. 无序的. 里面的元素必须是可hash的(int, str, tuple,bool), 我们可以这样来记. set就是dict类型的数据但是不保存value, 只保存key. set也用{}表 示

    注意: set集合中的元素必须是可hash的, 但是set本 身是不可hash得. set是可变的.

     

    set中的元素是不重复的, 且无序的.

     

    使用这个特性.我们可以使 用set来去掉重复

     

    set集合增删改查

    1.  增加

     

    2.  删除

    3. 修改

    4.查询

    5.常用操作

     

     

     set集合本⾝身是可以发生改变的. 是不可hash的. 我们可以使⽤用frozenset来保存数据. frozenset是不可变的. 也就是一个可哈希的数据类型

     

     这个不是很不常用,了解即可

    三. 深浅拷贝

     

    对于list, set, dict来说, 直接赋值. 其实是把内存地址交给变量. 并不是复制 一份内容. 所以. lst1的内存指向和lst2是 一样的. lst1改变了, lst2也发生了改变

    浅拷贝

    浅拷贝. 只会拷贝第 一层. 第二层的内容不会拷贝. 所以被称为浅拷贝

    深拷贝

     

    都不一样了. 深度拷贝. 把元素内部的元素完全进行拷贝复制. 不会产⽣生⼀个改变另一个跟着改变的问题

    补充 一个知识点:

    最后我们来看 一个 面试题:

     

    幻想毫无价值,计划渺如尘埃,目标不可能达到。这一切的一切毫无意义——除非我们付诸行动。
  • 相关阅读:
    C# GridView使用 与 DataList分页。
    如何禁止服务器端口 135 137 3389等
    页面自动刷新 与 隔时刷新
    彻底解决网页图片只能另存为无标题bmp位图
    C# Byte[]数组转化为string类型.其实很简单.
    vs2003打开时报错。尝试创建 Web 项目或打开位于..
    Discuz! 在线人数,发帖数,修改。
    点击文本框出现时间选择器DateJs
    一张有转折意义的神秘地图
    中断异常的处理
  • 原文地址:https://www.cnblogs.com/TodayWind/p/11851501.html
Copyright © 2020-2023  润新知