Python字典类中删除不存在的键会产生何种结果?
执行
del buff[k]删除字典中不存在的键会触发KeyError错误 当你尝试用del语句删除Python字典里不存在的键时,绝对不会直接跳过该行,而是会立刻触发一个KeyError异常,直接中断程序的执行——除非你提前用异常捕获逻辑处理了这个错误。
举个实际的代码例子:
buff = {"name": "Alice", "age": 30} del buff["height"] # "height"并不是buff中的键
运行这段代码后,Python会抛出类似这样的错误提示:
KeyError: 'height'
如果不想让程序因为这个场景报错中断,有两种常用的处理方式:
- 提前检查键是否存在:
buff = {"name": "Alice", "age": 30} k = "height" if k in buff: del buff[k] # 键不存在时,代码会跳过del语句,不会有任何报错
- 使用字典的
pop()方法(支持传入默认值):
buff = {"name": "Alice", "age": 30} buff.pop("height", None) # 键不存在时返回指定的默认值None,且不会修改字典
内容的提问来源于stack exchange,提问作者Ninja Bug
相关产品推荐
相关产品推荐

