福哥在编写python程序的时候比较喜欢用dict类型对象,尤其喜欢用多级dict数据结构。但是有个问题,如果调用一个不存在的元素就会报出KeyError异常,要在上下文里增加try … except太麻烦了,怎么办呢?
今天给出一些判断dict类型对象是否包含某个键的元素的方法,大家可以根据自己的喜好选择使用。
2.1 方法1通过in判断key是否存在
my = {"nick":"福哥","age":"35","languages":["c/c++","java","php","python","javascript"]} if "province" in my: print(my["province"])
2.2 方法2使用get方法判断key是否存在
my = {"nick":"福哥","age":"35","languages":["c/c++","java","php","python","javascript"]} if my.get("province") is not None: print(my["province"])
2.3 方法3使用get方法的第二个参数,如果目标key不存在则返回第二个参数
my = {"nick":"福哥","age":"35","languages":["c/c++","java","php","python","javascript"]} print(my.get("province", "北京")) print(my)
2.4 方法4使用setdefault方法的第二个参数,如果目标key不存在则返回第二个参数同时讲第二个参数写入key位置
my = {"nick":"福哥","age":"35","languages":["c/c++","java","php","python","javascript"]} print(my.setdefault("province", "北京")) print(my)
在编写python程序的时候,经常会遇到KeyError这种情况,如果直接使用触发了异常程序就会终止执行了,如果要增加try … except语句捕获未免太麻烦了,学会使用这些技巧之后就可以从容应对了!