Pyhton学习笔记之dict

一、dict基础知识

       Python 内置了字典:dict的支持,dict全程dictinoary,在其他语言中也称为map,使用键<->值(key-value)储存,具有极快的查找速度。字典是一种映射类型

        如下,我们要根据同学的姓名去查询对应的身高,如果我们使用list实现,我们需要用到两个list。

        

        我们在上面使用两个list实现了一个映射关系,但是当我们的元素越来越多时,那么需要的时间就越久,如果我们使用dict实现这个事例,只需要一个“名字<->身高”的一个对照表即可,而且无论这个表有多大,查找速度都不会变慢。

        

        dict 的标志性符号是“{ }”,并且它由多个键(key)和其对应的值(value)组成,每一对键值组合我们称之为象,一个key只能对应一个value,多次对一个key放入value,后面的值会将前面的值冲掉

       

        如果我们使用的key值如果不存在,那么就会报错

        

        

二、dict的创建

        我们创建一个dict可以使用我们上面使用到的方法外,还有下面的几种特殊的方式

    (一)创建一个空的dict        

    dict1 = {}
        

    (二)使用dict()函数

        使用dict()函数我们也可创建一个字典,下面我们就使用可迭代对象的方式来构造字典

    dict1 = dict(((1,'one'),(2,'two'),(3,'three')))
    dict2 = dict([[1,'one'],[2,'two'],[3,'three']])

         

        使用key=value的形式     

        

   (三)直接给字典的键赋值

        如果我们的键已经存在,那么我们会改写当前键的值,如果不存在,那么就会添加该键 ,如下

        

        我们看到,已经在dict3里面新建了一组对象。

    (四)fromkeys

         在dict数据类型,有一种内置方法函数fromkeys() 我们使用它可以对在创建字典时,同时对多个键值对 

  的值进行初始化。比如: 我们需要创建一个保存用户账号和密码字典,并要求所有密码的初始值为‘000’

    print({}.fromkeys({'user1', 'user2','user3'}, '000000'))  

        

         fromkeys第一个参数可以列表/tuple/str/set

          但是注意当我们使用str作为第一个参数时,我们他会将我们的字符串的每一个字符都作为字典的键值

    key。

        

三、dict的增、删、查

    (一)增

            (1)增加一个元素

                    如果key值存在,则更新对应的value值,如果key值不存在则添加相应的key-value键值对。

                    key不存在:

                   

                    key存在:

                    

         (2)增加多个键值对

                   我们使用dict的内置方法函数,update()方法函数,如果key值存在,则更新对应的value值,如果key

            值不存在则添加相应的key-value键值对。

                    

        dict.update(dict2)    #dict2 --添加到指定字典dict里的字典  , 也就是说update方法的参数只能是字典
        (3)setdefault()方法    
        dict.setdefault(key, default=None)   #key -- 查找键值  default -- 键不存在时,设置的默认值
                   dict中的setdefault()方法,如果key值存在,则不做修改,返回改建对应的值,如果key

            值不存在,则添加相应的key-value键值对,返回为该键设置的值

            key不存在:
                
            key存在:
                
 

(二)删    

    (1)del 
            我们通过del 关键字可以删除整个字典也可以删除相应的键值对。
            del 删除对应的键值对
            
            del 整个字典(会将del这个变量及变量指向的地址的内容全部删除)
           
            
   (2)pop()          
     pop(key[,default])   #key -- 要删除的键值  , default -- 如果没有key值,返回default 值  :该函数返回被删除的值
         key存在:  
        
           
        key不存在:
        
  (3)popitem()         
        dict.popitem() #该方法随机返回并删除字典中的一个键值对(一般是末尾对),如果字典已经为空,直接报错.
            
   
(三)查
   
    (1)查看字典的所有键值
            使用dict.keys()方法我们可以查看字典的所有键值 ,函数以列表返回一个字典所有的键
           
   (2)查看字典的所有键对应的值
             使用dict.values()方法可以查看字典的所有键对应的值, 函数以列表返回一个字典所有的值。
           
     
   (3)查看字典的所有键值对
             使用dict.item()方法可以查看字典的所有键值对, 函数以列表返回可遍历的(键, 值) 元组数组

            

  (4)get() 查看key值是否在字典中存在
     dict.get(key, default=None)   #key -- 字典中要查找的键   default -- 若果指定的键不存在,返回改默认值。
             
  (5)in 、not in 查看key值是否在字典中存在
            字典虽然不支持 索引、切片、连接 、重复等操作,但是支持in 、not in 成员操作符
        
       


          



猜你喜欢

转载自blog.csdn.net/m0_37717595/article/details/80107659