第五节课

第五节课 集合与字典 讲课老师:风陨老师

2021/4/2.
一、集合 set {}

1、定义:空集合只能用set()来定义 不能直接定义,直接定义结果为字典类型

           列:a = {}

​                print(type(a))         结果为  dict 字典
               
               a = set{a}
                 
                 print(type(a))         结果为  set  集合
               
               
               a = {1, 2, 3, 4,}
               
                 print(type(a))         结果为  set  集合
                                        已知集合不用set来定义
                                              

2、特性:

​ (1)、唯一性 集合具有唯一性 不会同时存在相同的元素,会自动去重。

          列:a = {1, 2, 3, 1, 2}
               
               print(a)              结果为 {1, 2, 3}               

​ (2)、无序性 不存在顺序,不能通过索引查找

          列:a =  {1, 2, 3}
               
               print(a.[2])          结果报错

​ (3)、可变性 set集合 属于可变对象


3、集合的 交集 并集 差集

​ (1)、交集 & 两组集合中相同的元素

         a = {1, 2, 3, 4}
         b = {3, 4, 5, 6}
        
           print(a & b)            结果为{3, 4}
              

​ (2)、 并集 | 两组集合中 合并在一起的结果,自动去重。

         a = {1, 2, 3, 4}
         b = {3, 4, 5, 6}
          
            print(a | b)           结果为{1, 2, 3, 4, 5, 6}

​ (3)、 差集 - ab两组集合中,a-b为a 的差集 b-a为b 的差集

           a = {1, 2, 3, 4}
           b = {3, 4, 5, 6}
           
              print(a - b)          结果为a的差集{1, 2}
            
              print(b - a)          结果为b的差集{5, 6}

4、集的基本操作

​ (1)、增 :

​ ① add 单个添加元素 不能添加元组和列表否则报错

           a = {1, 2, 3, 4}
           
             print(a.add(5))      结果为{1, 2, 5, 3, 4}
                                  无序性,添加到任意一个位置

​ ② update 批量添加 会被拆分 {‘f’, 1, 2, 3, 4, ‘d’, ‘c’, ‘e’, ‘a’, ‘b’}

           a = {1, 2, 3, 4}
          
              print(a.update('abcdef')   
                               结果为{'f', 1, 2, 3, 4, 'd', 'c', 'e', 'a', 'b'}
                               注意:因为集合的无序性,每次打印结果不一样
        
     
     小知识: 如果不想增加的数据被拆分就加上列表[]
             
             列:a = {1, 2, 3, 4}
              
                  print(a.update(['abc', 'dxy']))
                               结果为{'abc', 1, 2, 3, 4, 'dxy'}
             
          

​ (2) 删

​ ① pop 随机删除

            a = {1, 2, 'x', 3, 'y', 4}
            
               a.pop()          
                  print(a)        结果为{1, 2, 'y', 3, 4}
            

​ ② remove 指定已知元素 不存在的值会报错

            a = {1, 2, 'x', 3, 'y', 4}
              
                a.remove('y')
                  print(a)         结果为{1, 2, 3, 4, 'x'}  
                  
                  a.remove('b')    结果报错  不存在的值会报错

​ ③ discard 指定元素删除 不存在的值不会报错

             a = {1, 2, 'x', 3, 'y', 4}
                
                a.discard('x')
                  
                  print(a)        结果为 {1, 2, 3, 4, 'y'}
                  
                  a.discard(9)    结果为 {3, 1, 'x', 2, 'y', 4} 
                                  结果不会报错

​ (3)、查

​ ① isdisjoint () 判断2组集合是否没有交集 有就返回 False 没有就true

              a = {1, 2, 3, 'y', 4}
              b = {2, 3, 'y', 4, 5}
              
                   print(b.isdisjoint(a))    返回 False
                    
                   
                   print(a.isdisjoint(b))    返回 False
               
              

​ ② issubset () 判断a是否为b的子集

               a = {1, 2, 3, 'y', 4}
               b = {1, 2, 3, 'y', 4, 5}
                  pritn(a.issubset(b))     返回 True 
                                            b包括a 所以的元素         

​ ③ issuperset () 判断b是否为a的子集

               a = {1, 2, 3, 'y', 4}
               b = {1, 2, 3, 'y', 4, 5}
               
                    print(a.issuperset(b))   返回 False

img

​ ④ union() 查两组集合的并集

               a = {1, 2, 3, 'y', 4}
               b = {1, 2, 3, 'x, 4, 5}
               
                   print(a.union(b))        结果为 {1, 2, 3, 4, 5, 'y', 'x'}

二、字典

​ 定义:字典 dict {键 key 值value 对}

                    a = {'x':3 , 'y':4}
                         print(type(a))     结果为字典类型

​ 字典特性: 1、必须是键值对的形式存在 2、键只能是唯一的 3、可变性 4、36版前是无序

​ 查看方法 取键获取值

                    a = {'x':3 , 'y':4}
                    
                    print(a['x'])            结果为3
                    
                    a[x] = 123            
                    
                    print(a['x'])            结果为 123
                                             通过键取值,重新赋值
  
  小知识:   可以用赋值方法
                    b = a.copy()
                       print()               结果为 a = {'x':3 , 'y':4}  

字典的基本方法

​ 1、增 setdefault 有则查,无则增 查的数据没有的情况下默认为空(none)设置值就增加

                     a = {'x':3 , 'y':4}
                     print(a.setdefault('x')  结果为3
                     
                     print(a.setdefault('z')  结果为空(None)
                     
                     print(a.setdefault('z', 7) 结果为7
                      
                      print(a)                结果为a = {'x':3 , 'y':4,'z':7}
                     

​ 2、删

​ (1)、 clear 情空

                   a = {'x':3 , 'y':4}
                   
                      print(a.clear())        结果为 {}
                                              清空字典里的所有数据
                                              

​ (2)、pop 通过键 key 删除

                   a = {'x':3 , 'y':4}
                   
                   print(a.pop('x'))           结果为 {'y': 4} 
                                               

​ (3)、popitem 从右往左删

                 a = {'x':3 , 'y':4}
                 
                  a.popitem('x')
                  
                  print(a)                   结果为 {'x':3}
                                              

​ 3、改

​ update 有则改 无则增

                  a = {'x':3 , 'y':4}
                  
                  a.upadte({'x':5})
                    
                     print(a)                结果为{'x':5 , 'y':4}
                  a.update({'x':5, 'z':2})
                     print(a)                结果为{'x':5 , 'y':4, 'z':2} 

​ 4、查

​ (1) get 通过键查值

                    a = {'x':3 , 'y':4}
                     
                       a.get('x')             结果为3
                       
            注意:       a.get('z')            结果为None 空  不会报错

​ (2) keys 查看所有的键

                     a = {'x':3 , 'y':4}
                     
                     print(a.keys())     
                                   结果为(['x', 'y' ]) 可迭代的对象 不可通过索引取值
         

​ (3) valuse 查看所有的值

                     a = {'x':3 , 'y':4}
                      
                      print(a.valuse)   结果为([3, 4 ])  

​ (4) items 以列表的形式返回可遍历的元组数组

                       a = {'x':3 , 'y':4}
                       
                        print(a. items())   结果为 ([('x', 3), ('y', 4)])

重点 可变和不可变

​ 1、可变 改变之后 内存地址不会改变 列表,字典 集合 字符串

​ 2、不可变 改变之后内存地址发生改变 数字, 元组

​ 3、列表 嵌套

                    a = ['x',[1, 2, 3]]
                        a[1][1] = 'x'
                             print(a)            结果为['x', [1, 'x', 3]]
                                                 先取值再更改
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值