KeyError 是Python中的一个常见异常,通常在字典(dictionary)中查找一个不存在的键(key)时发生。字典是一种可变容器模型,且可存储任意类型对象,键必须是唯一的,但值则不必。
类型:
collections.OrderedDict
,保持插入顺序。collections.Counter
,用于计数可哈希对象。应用场景:
原因:
当尝试访问字典中不存在的键时,Python会抛出KeyError
异常。
解决方法:
in
关键字检查键是否存在:in
关键字检查键是否存在:get()
方法:
get()
方法允许指定一个默认值,如果键不存在则返回该默认值,而不是抛出异常。get()
方法:
get()
方法允许指定一个默认值,如果键不存在则返回该默认值,而不是抛出异常。try-except
块捕获异常:try-except
块捕获异常:假设我们有一个字典graph_paths
存储了图形路径信息:
graph_paths = {
"path1": "/var/data/graph1",
"path2": "/var/data/graph2"
}
错误的访问方式:
try:
print(graph_paths["path3"]) # 这将引发KeyError
except KeyError:
print("指定的路径不存在")
正确的访问方式:
# 使用in关键字
if "path3" in graph_paths:
print(graph_paths["path3"])
else:
print("指定的路径不存在")
# 使用get()方法
path = graph_paths.get("path3", "默认路径")
print(path)
通过上述方法可以有效避免KeyError
异常,并使代码更加健壮和易于维护。
领取专属 10元无门槛券
手把手带您无忧上云