使用get()方法可避免KeyError,键不存在时返回None或指定默认值;2. 用in操作符提前判断键是否存在;3. try-except捕获KeyError异常;4. setdefault()在键不存在时插入默认值。根据场景选择方法:读取用get(),赋默认值用setdefault(),复杂逻辑用try-except。

在使用 Python 字典时,KeyError 是一个常见异常,通常发生在尝试访问一个不存在的键时。为了避免程序中断,有多种方法可以安全地处理键不存在的情况。
1. 使用 get() 方法获取值
字典的 get() 方法是最常用的避免 KeyError 的方式。它会返回指定键的值,如果键不存在,则返回 None 或你指定的默认值。
- 不提供默认值:dict.get("key") 返回 None
- 提供默认值:dict.get("key", "default") 返回 "default"
示例:
my_dict = {"name": "Alice", "age": 25}
print(my_dict.get("city")) # 输出 None
print(my_dict.get("city", "Unknown")) # 输出 Unknown
2. 使用 in 操作符提前判断键是否存在
在访问键之前,先用 in 检查键是否存在于字典中,能有效防止异常。
立即学习“Python免费学习笔记(深入)”;
示例:
if "city" in my_dict:
print(my_dict["city"])
else:
print("Key not found")
3. 使用 try-except 捕获 KeyError
当你需要直接访问 dict["key"] 时,可以用 try-except 结构捕获异常。
示例:
try:
print(my_dict["city"])
except KeyError:
print("The key 'city' does not exist")
4. 使用 setdefault() 设置默认值
如果希望在键不存在时自动插入一个默认值,可以使用 setdefault() 方法。
示例:
city = my_dict.setdefault("city", "Beijing")
print(city) # 输出 Beijing,并且 my_dict 中已添加 "city": "Beijing"
基本上就这些常用方法。根据具体场景选择合适的方式:读取时不修改字典用 get(),需要赋默认值用 setdefault(),逻辑复杂时配合 try-except 更灵活。










