元组、字典、集合

一、元组

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,无法取值;

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

posted @ 2019-03-25 18:40  ymg-颜  阅读(215)  评论(0编辑  收藏  举报