基础数据类型补充

一:set集合:

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

  注意:set集合中的元素必须是可哈希的,但set本身时可变的不可哈希的,set集合中的元素是不重复并且                        无序的,使用这个特性我们可以使用set集合来去掉重复!    

  例:lst = [45, 5, "哈哈", 45, '哈哈', 50]
  lst = list(set(lst)) # 把list转换成set, 然后再转换回list
  print(lst)   结果[45,5,50,哈哈]

  字典的新增: set.add(内容)   注意: 重复的内容不会添加到set集合中

        set.update(可迭代内容)    迭代添加

     删除:  a=set.pop()   随机弹出一个    a为弹出的元素

        set.remove(指定内容删除)   remove为指定内容删除,如果不存在这个元素则会报错

        set.clear()   清空集合  需要注意的是set集合如果为空打印出来是set() 因为要和
              dict区分的.

    修改:set集合中的数据没有索引,也没办法定位一个元素,我们可以采用先删除后添加的方式来                                 完成修改

    查询:   set集合是一个可迭代对象  所以可以使用   for 循环

二:深浅拷贝:

      1. 赋值。 不会产生新对象。 和拷贝没关系
                     2. 浅拷贝。 只会复制自身。 会创建对象

          例:lst1 = ["何炅", "杜海涛","周渝民", ["麻花藤", "马芸", "周笔畅"]]
           lst2 = lst1.copy()
           lst1[3].append("无敌是多磨寂寞")
           print(lst1)
           print(lst2)
           print(id(lst1[3]), id(lst2[3]))

           结果:
              ['何炅', '杜海涛', '周渝民', ['麻花藤', '马芸', '周笔畅', '无敌是多磨寂寞']]
            ['何炅', '杜海海涛', '周渝民', ['麻花藤', '马芸', '周笔畅', '无敌是多磨寂寞']]
            4417248328 4417248328
            浅拷贝. 只会拷贝第一层. 第二层的内容不会拷贝. 所以被称为浅拷贝
                    3. 深拷贝。 把内部所有的内容都进行拷贝。

          例:import copy  引入模块

             lst1 = ["何炅", "杜海涛","周渝民", ["麻花藤", "马芸", "周笔畅"]]
           lst2 = copy.deepcopy(lst1)
           lst1[3].append("无敌是多磨寂寞")
           print(lst1)
           print(lst2)
           print(id(lst1[3]), id(lst2[3]))
        结果:
           ['何炅', '杜海涛', '周渝民', ['麻花藤', '马芸', '周笔畅', '无敌是多磨寂寞']]
           ['何炅', '杜海涛', '周渝民', ['麻花藤', '马芸', '周笔畅']]
           4447221448 4447233800
           都不一样了了. 深度拷贝. 把元素内部的元素完全进行拷贝复制. 不会产生一个                     改变另一个跟着改变的问题

三   附:

  列表切割为字符串的常用操作:例:li=["赵","钱","孙","李"]

                 s="_".join(li)  结果:赵_钱_孙_李

  循环删除列表或字典的每个元素:

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

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

          

猜你喜欢

转载自www.cnblogs.com/tcssn/p/9700015.html