pythondict获取key_python字典获取 key 报错怎么办?

01字典值获取

在 python 语言当中,经常会用到 dict 字典这种数据类型。当在字典当中获取一个不存在的 key 时,会引发异常。

比如在下面这个例子当中,gender 这个 key 在字典当中不存在,如果强行访问就会报错。

报错信息:

这给访问数据的时候造成一定的困扰,我们需要频繁的用类似 if "gender" in user 这样的判断语句去判断。

为了解决这个问题,可以通过 user.get("gender", "默认值") 的方式获取 key, 当 key 不存在时,赋给一个默认值。

02defaultdict

采用 get 方法虽然从一定程度上解决了报错问题,但是如果有很多数据需要频繁去获取还是不够方便,比如要进行大量数据分析的时候。

这时候我们可以使用 defaultdict, 他提供一个位置参数和不定长参数。位置参数是设置默认值的工厂函数。内置的通常是常用的数据类型转化函数:int

str

list

tuple

dict 等等。

03defaultdict 参数说明defaultdict 第一个参数是默认值的工厂函数

后面的 **kw 是键值对, 也可以是整个字典,或者不加。

04工厂函数的几种形式

工厂函数可以是以下几种类型:内置数据转化函数

匿名函数, 匿名函数不需要传入值。比如 lambda : 3

自定义函数。自定义函数可以有参数,也可以不传参数。

匿名函数的形式:

也可以自己定义函数, 函数也不需要传递参数:

有时候如果需要指定某个业务赋一个默认值,另一个业务赋另一个默认值,由参数去控制,则可以在自定义函数当中加入参数。

05defaultdict 原理

defaultdict 访问不存在的 key 而不报错的原理是通过类当中的 __missing__ 方法控制,下面是一个简单版的自己定义的 defaultdict 类:

说明:本文为柠檬班雨泽老师原创

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值