• 元组、字典、集合


    一、元组

    1、定义:参数为for可以循环的对象

         t1 = (1, 2)
         t2 = tuple((1, 2))
         t3 = (1, )        #定义一个只有一个值的元组

    2、常用操作:

    2.1、索引 

            元组是有序存储,所以可以以索引取值

             t(1,2,3,4,5)

             print(t[1])

             print(t[-2])

    2.2、长度(item元素个数)

            print(len(t))

    2.3、切片

             t=(1,2,3,2,3,2)

             nt = t[:-1:]

             print(nt)       #(1,2,3,2,3)

    3、元组的内置方法:

          print(t.count(2))    #统计2的个数,该数据集合可以存放相同数据

          t=(1,2,3,2,3,2)

          print(t.index(2,2,3))   #报错,顾头不顾尾,所以找不到2

    元组小结:有序存储 ,可存放多个数据 , 不可变(内部可以包含可变对象,可变对象可以改变)

                      它可以将不允许操作的列表可以转化为元组,将允许操作的元组转化为列表

    二、字典

    1、定义:在大括号内用逗号分隔开,以一个key对应一个value存储

         dic={'a':10,'b':20}

    2、常用操作:

    2.1、增加:key不存在

                   dic['name'] = 'Mac'

    2.1、该:key存在

                  dic['name'] = 'Big Mac'   #将原先的Mac改为Big Mac

    2.2、查value:

                  print(dic['name'])     #查找'name'对应的value值

    2.3、删除:

                   del dic['name']

    3、内置方法:

    3.1、   get取值(重点)*****

                例:dic = {'a':10,'b':20}

                 print(dic['c'])    #KeyError 即c不存在dic中就会报错

                 res = dic.get('c')    #拥有默认值None,可以避免错误,返回None

                 res = dic.get('d',key不存在)   #返回key不存在

    3.2、增加:添加的参数字典,与dic可以重复,如果重复就是更新,如果不重复则新增

                   print(dic.update({'a':100,'c':300}))     #{'a':100,'b':20,'c':300},即a的值更新了,新加了c

    3.3、删除:

             res = dic.pop('c')      #根据key删除指定对象,并返回删除对象的value

             print(red)      #300

    3.4、复制:(浅拷贝、深拷贝)

             d1 = {'list':[1,2]}

             d2 = d1.copy()         #d1,d2的地址不一样,但是内部成员的地址不变,即只做第一层copy(浅copy)

             d1['list'].append('abc')

             print(d2)        # {'list':[1,2,'abc']}

    3.5、随机删除:

            print(dic.popitem())        #随机删除字典里的一个值,返回的是被删除的(key:value)

    3.6、定义空字典:第一个参数key可以是list,tuple,str,第二个参数是统一的默认value

            d1 = {}.fromkeys(['a','b','c'],'')

            print(d1)     #{'a':'','b':'','c':''}

    3.7、setdefault的用法

        d.setdefault('teas',[])    #在d中,如果有teas这个key,setdefault相当于什么都没做

                                             #如果没有,就将第二个参数(默认值)传给teas存放到d中

    字典小结:字典中的key可以为所有不可变类型:int float tuple str bool None,但是一般采用字符串

                      value可以是任意类型(注:key具有唯一性,即重复会覆盖旧值,而value可以重复)

    三、集合

    1、定义:s = set()

    2、常用操作与内置方法

    2.1、交集&

            p_set = {'a','b','c','egon'}

            l_set = {'x','y','z','egon'}

           res = p_set & l_set

           或 res = p_set.intersection(l_set)

            print(res)                   #{'egon'}

    2.2、并集|

             res = p_set | l_set

         或res = p_set.union(l_set)

              print(res)               #{'x','y','z','a',b','c','egon'}

    2.3、差集

            res = p_set - l_set

            print(res)    #{'a','b','c'}

          或res = p_set.difference(l_set)

            print(l_set - p_set)   #{'x','y','z'}

    2.4、对称差集^

            res = p_set ^ l_set

        或res = p_set.symmetric_difference(l_set)

            print(res)      #{'a','x','b','c','y','z'}

    2.5、增加

         s = set()

         s.add('abc')

         s.add('xyz')

         print(s)         #{'abc','xyz'}

    2.6、删除

          res = s.pop ()     

          print(res)       #随机删除一个元素

          if 'xyz' in s:

                s.remove('xyz')    #有就删除,没有就报错

    3、了解

    1、父子set

    set1 = {1,2,3,4,5,6}

    set2 = {1,2,3}

    set3 = {7,8,9}

    print(set1 > set2)     #True

    print(set2 == set3)    #False

    2、两个set是否没有交集

          res = set3.isdisjoint(set2)

          print(res)                  #没有交集,True

          res = set2.isdisjoint(set1)

          print(res)                  #有交集,False        

    集合小结:集合是无序存储,没有key,没有index,无法取值;

                     可变数据类型,内部可以存放任意类型数据,但数据具有唯一性

  • 相关阅读:
    Associative Embedding: Detection and Grouping loss
    Stacked Hourglass Networks 以及 PyTorch 实现
    论文笔记Stacked Hourglass Networks
    LiveQing私有云端直播点播流媒体服务-功能一张图
    监控实时直播的四分屏的前端展示
    LiveQing视频流媒体开放平台利用 webpack 打包压缩后端代码
    安防监控直播中无插件web直播方案中实现快照抓取的功能
    RTSP-Onvif摄像机web直播遇到的时间戳问题导致的卡顿解决方案
    H5实现视频监控网络直播时前端自动适配
    H5实现无插件视频监控按需直播
  • 原文地址:https://www.cnblogs.com/yanminggang/p/10595534.html
Copyright © 2020-2023  润新知