Python的KeyError的解决办法

介绍

福哥在编写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语句捕获未免太麻烦了,学会使用这些技巧之后就可以从容应对了!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值