什么是 KeyError 异常? 在 Python 中,KeyError异常是内置异常之一,具体来说,KeyError是当试图获取字典中不存在的键时,引发的异常。作为参考,字典是一种将数据存储在键值对中的数据结构,字
什么是 KeyError 异常?在 Python 中,KeyError 异常是内置异常之一,具体来说,KeyError 是当试图获取字典中不存在的键时,引发的异常。作为参考,字典是一种将数据存储在键值对中的数据结构,字典中的 value 是通过其 key 获取的。 Python KeyError 常见原因及示例以国家及其首都的字典作为例子:
要在字典中搜索信息,需要在括号中指定 key,Python 将返回相关的 value。
如果获取一个在字典中没有的 key,Python 将会抛出 KeyError 异常错误信息。
尝试获取其他 Python 字典中不存在的 key 时,也会遇到这样的异常。例如,系统的环境变量。
处理 Python KeyError 异常有两种策略去处理 KeyError 异常 ,一是避免 KeyError,二是捕获 KeyError。 防止 KeyError如果尝试获取不存在的 key 时,Python 会抛出 KeyError。为了防止这种情况,可以使用 .get() 获取字典中的键,使用此方法遇到不存在的 key,Python 将会返回 None 而不是 KeyError。
或者,可以在获取 key 之前检查它是否存在,这种防止异常的方法被称为 “Look Before You Leap”,简称 LBYL, 在这种情况下,可以使用 if 语句来检查键是否存在,如果不存在,则在 else 子句中处理。
通过异常处理捕获 KeyError第二种方法被称为 “Easier to Ask Forgiveness Than Permission”,简称 EAFP,是 Python 中处理异常的标准方法。 采用 EAFP 编码风格意味着假设存在有效的 key,并在出现错误时捕获异常。LBYL 方法依赖于 if/else 语句,EAFP 依赖于 try/except 语句。 下面示例,不检查 key 是否存在,而是尝试获取所需的 key。如果由于某种原因,该 key 不存在,那么只需捕获 except 子句中的 KeyError 进行处理。
Python 高阶处理 KeyError使用 defaultdictPython 在获取字典中不存在的 key 时,会返回 KeyError 异常。.get() 方式是一种容错方法,但不是最优解。 Collections 模块提供了一种处理字典更好的方法。与标准字典不同,defaultdict 获取不存在的 key ,则会抛出一个指定的默认值,
|
2019-06-18
2019-07-04
2021-05-23
2021-05-27
2021-05-27