关于字典dict“相加减”以及KeyError处理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于字典dict“相加减”以及KeyError处理相关的知识,希望对你有一定的参考价值。
参考技术A运用 Counter() 函数可以实现相同键字典相加减,实际是合并操作
字典进行相减操作时,相同键值又相同,会去重消失
此时在未知情时调用 z[\'A\'] 会触发错误 KeyError:\'A\'
常用两种:
用到 defaultdict ,它是内置类 dict 的子类
构造器第一个参数是一种数据类型(int,list)或者是None 代表着值的数据类型
设置了非 None 参数,代表生成的字典以该种数据类型存值,也就有了初始值
如:
int 类型初始值为 0
list 类型初始值为 []
用到 dict 内置的 get(key,default) 函数
解决字典dict中key不存在的情况
如果字典中key不存在,程序会报错‘KeyError‘,如下:
def test_no_key(self): a_dict = {} print(a_dict[‘a_key‘])
Error Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/unittest/case.py", line 59, in testPartExecutor yield File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/unittest/case.py", line 605, in run testMethod() File "/Users/wmj/PycharmProjects/fluent/test/test_dict.py", line 30, in test_no_key print(a_dict[‘a_key‘]) KeyError: ‘a_key‘
采用dict.get()的方式,如果key不存在,怎会返回None
a_dict = {} result = a_dict.get(‘a_key‘) print(type(result))
并且可以自定义默认值,比如如果返回‘nothing‘
a_dict = {} print(a_dict.get(‘a_key‘, ‘nothing‘))
以上是关于关于字典dict“相加减”以及KeyError处理的主要内容,如果未能解决你的问题,请参考以下文章