• 六,元祖,字典,集合类型详解


    一、元祖类型 tuple

      与列表类型的差别就是无法修改.

      定义方式:在()内用逗号分隔开多个任意类型的值

      该类型总结
        存多个值

        有序

        不可变

    二、字典类型 dict

      用途:记录多个值,每一个值都对应的key用来描述value的作用

      定义方式:在{}内用逗号分隔开多 个key:value,其中value可以是任意类型,而key必须是不可变的类型,通常情况下应该str类型

       用法一:

         dic=dict(x=1,y=2,z=3)
         print(dic)

      

       用法二:
         userinfo=[
         ['name','egon'],
         ['age',18],
         ['sex','male']
          ]
         d={}
         for k,v in userinfo: #k,v=['name', 'egon']
         print(k,v)
        d[k]=v
         print(d)

         d=dict(userinfo)
        print(d)

      

      3 常用操作+内置的方法
      优先掌握的操作:
        1、按key存取值:可存可取

               dic['age']=18

          按get取值

            dic.get()

            没有找到返回None

        2、长度len

        

        3、成员运算in和not in:字典的成员运算判断的是key
          dic={'name':'egon','age':18,}
           print(18 in dic)
           print('age' in dic)

        

        4、删除
           dic={'name':'egon','age':18,}
          通用
          del dic['name']
           print(dic)
          del dic['xxx'] ##key不存在则报错

      

          

           res=dic.pop('age') #删除key对应的value,并返回value
           print(dic)
           print(res) #
           dic.pop('xxx') #key不存在则报错

          res=dic.popitem()

        5、键keys(),值values(),键值对items()

        

        6、循环
          dic={'name':'egon','age':18,'sex':'male'}

          for k in dic.keys():
           print(k,dic[k])

           for k in dic:
           print(k,dic[k])

          for v in dic.values():
          print(v)

          for k,v in dic.items():
          print(k,v)

      需要掌握的操作:  

       dic.fromkeys()的用法:
        l=['name','age','sex']
        dic={'name':None,'age':None,'sex':None}


        dic={}
        for k in l:
        dic[k]=None
        print(dic)


        dic=dic.fromkeys(l,None)
        print(dic)

       

       update的用法:有则修改,无则添加(更新)

        old_dic={'name':'egon','age':18,'sex':'male'}
        new_dic={'name':'EGON','x':1,'y':2}
        old_dic.update(new_dic)
        print(old_dic)

        

       

       setdefault:有则不动/返回原值,无则添加/返回新值
        dic={'name':'egon','age':18}
        res=dic.setdefault('name','EGON') # 字典中已经存在key则不修改,返回已经存在的key对应的value
        print(dic)
        print(res)

        res=dic.setdefault('sex','male') # 字典不存在key则添加"sex":"male",返回新的value
        print(dic)
        print(res)

      该类型总结
        1 存多个值

        2 无序

        3 可变

    三、集合类型:set

      1 用途: 关系运算,去重

      2 定义方式: 在{}内用逗号分开个的多个值
      集合的三大特性:
        2.1 每一个值都必须是不可变类型
        2.2 元素不能重复
        2.3 集合内元素无序

      3 常用操作+内置的方法
      pythons={'李二丫','张金蛋','李银弹','赵铜蛋','张锡蛋','alex','oldboy'}
      linuxs={'lxx','egon','张金蛋','张锡蛋','alex','陈独秀'}
       取及报名python课程又报名linux课程的学员:交集
        print(pythons & linuxs)
        print(pythons.intersection(linuxs))

       取所有报名老男孩课程的学员:并集
        print(pythons | linuxs)
        print(pythons.union(linuxs))

       取只报名python课程的学员: 差集
        print(pythons - linuxs)
        print(pythons.difference(linuxs))

       取只报名linux课程的学员: 差集
        print(linuxs - pythons)
        print(linuxs.difference(pythons))

       取没有同时报名两门课程的学员:对称差集
        print(pythons ^ linuxs)
        print(pythons.symmetric_difference(linuxs))

      是否相等
        s1={1,2,3}
        s2={3,1,2}
        print(s1 == s2)

      父集:一个集合是包含另外一个集合
        s1={1,2,3}
        s2={1,2}
        print(s1 >= s2)
        print(s1.issuperset(s2))

        s1={1,2,3}
        s2={1,2,4}
        print(s1 >= s2)

      子集
        s1={1,2,3}
        s2={1,2}
        print(s2 <= s1)
        print(s2.issubset(s1))

      

      需要掌握操作    

        s1={1,2,3}
        s2={1,2}
        s1.difference_update(s2) #s1=s1.difference(s2)
        print(s1)#{3}

       增加值
        s1={1,2,3}
        s1.update({3,4,5})  

        s1={1,2,3}
        s1.add(4)

       随机删 

        s1={1,2,3}
        res=s1.pop()

       删除

        s1={1,2,3}
        res=s1.remove(3) #单纯的删除,返回值为None

        s1={1,2,3}
        res=s1.discard(3) ##单纯的删除,返回值为None
        print(s1)
        print(res)
        s1.remove(444444) #删除的元素不存在则报错
        s1.discard(444444) #删除的元素不存在不会报错

       

      s1={1,2,3}
      s2={1,2,4}
      print(s1.isdisjoint(s2)) #如果两个集合没有交集则返回True

      该类型总结
      1 存多个值

      2 无序

      3 set可变

      

    # 集合去重
    # 局限性
    #1、无法保证原数据类型的顺序
    #2、当某一个数据中包含的多个值全部为不可变的类型时才能用集合去重

  • 相关阅读:
    谷粒学院项目P108集添加课程信息接口时的一个坑
    vue下拉框属性说明
    mybatisplus查询时间段内的报表(月报等)
    UI自动化,换种思路,把执行步骤换成动图gif
    以OD机考为名,python学习之路
    牛客网刷题按题目难度排:简单
    正则表达式随用随记
    第十四章 论一只爬虫的自我修养
    在低版本Android中使用Java Stream功能
    Yolov5训练自有模型
  • 原文地址:https://www.cnblogs.com/TRKOTW/p/9471072.html
Copyright © 2020-2023  润新知