zoukankan      html  css  js  c++  java
  • 第七天 1.基础数据类型的补充 2.set集合 3.深浅拷贝

      ·一.基础类型补充

    1.1Join

      join 把列表变成字符串    split 把字符串变成列表

      

    1.2.列表在循环时删除 

      (list(列表)和(dict(字典))的原理是一样的)

      

    分析原因:  

           for的运行过程. 会有⼀个指针来记录当前循环的元素是哪一个, ⼀开始这个指针指向第0个.然后获取到第0个元素.

    紧接着删除第0个. 这个时候. 原来是第一个的元素会自动的变成第0个.然后指针向后移动⼀次, 指向1元素. 这时原来的1

    已经变成了了0, 也就不会被删除了.

      循环删除,不论用del 还是 remove都删除不了,试试pop

      

      只有利用for循环和range结合使用,才可以删除,而且是从后往前删

      由于删除元素会导致元素的索引改变, 所以容易出现问题. 尽量不要再循环中直接去删除元素.

      可以把要删除的元素添加到另一个集合中然后再批量删除. (list在循环的时候不能被删除,因为会改变索引)

      如下示例1:删除li=[11,22,33,44,]中的所有元素

      

      示例2:删除列表中姓“周“的名字

      

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

     

      前面的列表中的每一项都会作为key,后面列表的内容都会作为value,生成dict

      

    1.3字典在循环中的删除

      字典(dict)中的元素在迭代过程中是不予许进行删除的

      解决办法:

        把要删除的元素暂时先保存在一个list中,然后循环list,在删除

      如下示例:删除字典中带有“k“的元

      

    类型转换:

             元祖 ——> 列表   list(tuple)

          列表——>  元祖   tuple(list)

        list  ——> str   str.join(list)

        str  ——>  list   lstr.split()

        转换成False的数据: 0, ‘’ , None, [] , (,), {}, set() --> False

    二.Set集合

      set集合是python的一个基本数据类型.  一般不是很常用 . set中的元素是不重复的.⽆序的.里面的元素必须是可hash的(int, str, tuple,bool),

      我们可以这样来记. set就是dict类型的数据但是不保存value, 只保存key. set也⽤用{}表⽰示

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

      

        根据set中的值不能重复,可以使用set来去掉重负值

      如下示例

           

    三.深浅拷贝

      赋值:

      

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

      

      

      深度拷贝:对象中的所有的内容都会被拷贝一份

            Import  capy

                   Copy.deepcopy()

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

       

  • 相关阅读:
    hdu 1042 N!
    hdu 1002 A + B Problem II
    c++大数模板
    hdu 1004 Let the Balloon Rise
    hdu 4027 Can you answer these queries?
    poj 2823 Sliding Window
    hdu 3074 Multiply game
    hdu 1394 Minimum Inversion Number
    hdu 5199 Gunner
    九度oj 1521 二叉树的镜像
  • 原文地址:https://www.cnblogs.com/mwhylj/p/9304849.html
Copyright © 2011-2022 走看看