数据类型的最后三个类型:元组类型、字典类型、集合

  数据类型的最后三个类型:元组类型、字典类型、集合。

  一、元组类型:

    (1)用途:用于存放多个值,当存放的多个值只有读的需求没有改的需求时用元组最合适

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

       例子:t = ('a',1,3.1,['a','b'])

       res = tuple('hello')

       print(res)

       res = tuple({'x':1,'y':2})

       print(res)

    (3)常用操作+内置方法  

       1、按索引取值(正向取+反向取):只能取

        t = ('a','b',1)

        t[0]= 111会显示bug

       2、切片(顾头不顾尾,步长)

        t = ('h','e','l','l','o')

        res = t[1:3]

        print(res)

        print(t)

            3、长度

        t = ('h','e','l','l','o')

        print(len(t))

       4、成员运算in和not in

        t = ('h','e','l','l','o')

        print('l' in t)

       5、循环

        t = ('h','e','l','l,'o')

        for item in t:

          print(item)

     (4)总结

        元组可以存多个值

        有序

        不可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash)

 

    掌握的方法:

        t = ('a','b','c')

        print(t.index('a'))

        print(t.count('b'))

  二、字典类型

    (1)用途:用来存放多个不同种类的值

    (2)定义方式:在{}内用逗号分隔开多个key:value的元素,其中value可以是任意数据类型,而key的功能通常是用来描述value的,所以key通常是字符串类型,但其实key必须是不可变的类型(intfloatstr uple)

      d = {0:'x',3.1:'y','name':'egon',(1,2,3):'aaa'}  #d = dict(....)

    (3)常用操作+内置的方法

        1、按key存取值:可存可取

        d = {'x':1}

        print(d['x'])

        print(id(d))

        2、长度len

        d={'x':1,'y':2,'z':3}

        print(len(d))

        3、成员运算in和not in

        d = {'x':1,'y':2,'z':3}

        print(1 in d)

        print('x' in d)

        4、删除

        d = {'x':1,'y':2,'z':3}

        del d['y']

        print(d)

        res = d.pop('y')

        print(d)

        print(res)

        res = d.popitem()

        print(res)

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

        d={'name:'egon','age':18,'sex':'male','hobbies':[1,2,3]}

        print(d.keys())

        print(list(d.keys()))

        print(d.values())

        print(d.items())

        6、循环

        d={'name:'egon','age':18,'sex':'male','hobbies':[1,2,3]}

        for k in d.keys():

          print(k)

        for k in d:

          print(k)

        for v in d.values():

          print(v)

        for k,v in d.items():

          print(k,v)

        7、该类型总结

         存多个值

         无序

         可变

        8、需要掌握的操作

        (1)get方法

          查找功能,类似于v1=d['name']

          但是get方法在输入的key值不在字典里时会返回None

        (2)update方法:当添加的值有key时,修改原有的key的值,没有key时往字典里面添加一个新的数据

          d = {'name':'egon','age':18,'sex':'male','hobbies':[1,2,3]}

          d.update({'x':1,'name':'EGON'})

          print(d)

        (3)formkeys:需求是快速新造出一个字典,value的初始值全都为None,而key来自于一个列表

          keys=['name','age','sex']

          for k in keys:

            d[k]=None

          d = {}.fromkeys(keys,None)

          print(d)

        (4)setdefault

          d = {'x':1,'y':2}

          按照默认的操作形式

          d['x']=1111 #key存在则修改

          d['z']=1111 #key不存在则新增

          按照setdefault的形式

          d = {'x':1,'y':2}

          res = d.setdefault('x',11111) #在key存在的情况下不修改值,会返回原值

          print(d)

          print(res)

          res = d.setdefault('z',11111)#在key不存在的情况下回新增值,会返回新增的值

          print(d)

          print(res)

  三、集合

      1、什么是集合

        在{}内用逗号分隔开多个值,集合的特点:

          (1)每个值必须是不可变类型

          (2)集合无序

          (3)集合以内元素不能重复

      2、为何要用集合

          (1)用于做关系运算

          (2)去重

      3、如何用集合

        s = {1,1.3,'aa',[1,2]}

        s = {1,1.3,'aa'}

        print(s)

      集合的第一大用途:关系运算

        pyhons = ['egon','张铁蛋','李铜蛋','赵银弹','王金蛋','艾里克斯']

        linuxs = ['欧德博爱','李铜蛋','艾里克斯','lsb','ysb','wsb']

      (1)求同时报名两门课程的学生姓名:交集

        print(pythons & linuxs)

      (2)求报名老男孩学校课程的所有学生姓名:并集

        print(pythons | linuxs)

      (3)求只报名python课程的学生姓名:差集

        print(pythons - linuxs)

      (4)求没有同时报名两门课程的学生姓名:对称差集

        print(pythons - linuxs) | (linuxs - pythons)

      (5)父子集:指的是一种包含于被包含的关系

        s1 = {1,2,3}

        s2 = {1,2}

        print(s1 >= s2)

      集合的第二大用途:去重

      集合去重的局限性:

      1、会打乱原值的顺序

      2、只能针对不可变的值去重

      stus = {'egon','lxx','lxx','alex','alex','yxx'}

      new_1 = list(set(stus))

      print(new_1)

      old_1 = [1,[1,2],[1,2]]

      set(old_1) 会报错,因为用了可变类型 列表

      需要掌握的操作:

      s1 = {1,2,3}

      s1.update({3,4,5})

      print(s1)

      print(s1.pop())

      print(s1)

      s1.remove(2)

      print(s1)

      s1 = {1,2,3}

      s2 = {4,5}

      print(s1.isdisjoint(s2))

    总结:

      存多个值

      无序

      set可变

原文地址:https://www.cnblogs.com/xiaocaiyang/p/9671288.html