第七天 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()

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

   

 

posted @ 2018-07-13 14:42  熊猫大侠-呀呀呀!!!  阅读(103)  评论(0编辑  收藏  举报