zoukankan      html  css  js  c++  java
  • 数据类型的最后三个类型:元组类型、字典类型、集合

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

      一、元组类型:

        (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可变

  • 相关阅读:
    学了axure的感受
    axure的功能
    PS的应用
    day15-1 模块
    day14-2 模块详解
    day14-1 模块定义,导入
    day13-1 Json & pickle 数据序列化
    day12-3 内置方法
    day12-2 内置方法
    day12-1 迭代器和生成器
  • 原文地址:https://www.cnblogs.com/xiaocaiyang/p/9671288.html
Copyright © 2011-2022 走看看