Python操作dict时避免出现KeyError的几种方法

系统 1818 0

在读取dict的key和value时,如果key不存在,就会触发KeyError错误,如:

            
              t = {
    
              
                'a'
              
              : 
              
                '1'
              
              ,
    
              
                'b'
              
              : 
              
                '2'
              
              ,
    
              
                'c'
              
              : 
              
                '3'
              
              ,
}
print(t[
              
                'd'
              
              ])
            
          

就会出现:

            
              KeyError: 
              
                'd'
              
            
          

第一种解决方法

首先测试key是否存在,然后才进行下一步操作,如:

            
              t = {
    
              
                'a'
              
              : 
              
                '1'
              
              ,
    
              
                'b'
              
              : 
              
                '2'
              
              ,
    
              
                'c'
              
              : 
              
                '3'
              
              ,
}

              
                if
              
              
                'd'
              
              
                in
              
               t:
    print(t[
              
                'd'
              
              ])

              
                else
              
              :
    print(
              
                'not exist'
              
              )
            
          

第二种解决方法

利用dict内置的 get(key[,default]) 方法,如果key存在,则返回其value,否则返回default;使用这个方法永远不会触发KeyError,如:

            
                  t = {
        
              
                'a'
              
              : 
              
                '1'
              
              ,
        
              
                'b'
              
              : 
              
                '2'
              
              ,
        
              
                'c'
              
              : 
              
                '3'
              
              ,
    }
    print(t.get(
              
                'd'
              
              ))
            
          

加上default参数:

            
              t = {
    
              
                'a'
              
              : 
              
                '1'
              
              ,
    
              
                'b'
              
              : 
              
                '2'
              
              ,
    
              
                'c'
              
              : 
              
                '3'
              
              ,
}
print(t.get(
              
                'd'
              
              , 
              
                'not exist'
              
              ))
print(t)
            
          

第三种解决方法

利用dict内置的 setdefault(key[,default]) 方法,如果key存在,则返回其value;否则插入此key,其value为default,并返回default;使用这个方法也永远不会触发KeyError,如:

            
              t = {
    
              
                'a'
              
              : 
              
                '1'
              
              ,
    
              
                'b'
              
              : 
              
                '2'
              
              ,
    
              
                'c'
              
              : 
              
                '3'
              
              ,
}
print(t.setdefault(
              
                'd'
              
              ))
print(t)
            
          

加上default参数:

            
              t = {
    
              
                'a'
              
              : 
              
                '1'
              
              ,
    
              
                'b'
              
              : 
              
                '2'
              
              ,
    
              
                'c'
              
              : 
              
                '3'
              
              ,
}
print(t.setdefault(
              
                'd'
              
              , 
              
                'not exist'
              
              ))
print(t)
            
          

更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论