Effective Python:(14-15)

Effective Python:(14)

Effective Python提供90条高效编程的技巧和建议。

这是本书第17条,是对上一条字典技巧的一个简单有趣的补充。

上一条中介绍了字典中如果处理不存在的key的几种方法,终极大法是用setdefault方法搞定。

这一条中作者反而不建议用setdefault,建议直接用Python内置collection模块中的defaultdict类,其可以自动完成上述所有操作,完美处理该问题。

Effective Python:(15)

Effective Python提供90条高效编程的技巧和建议。

这是本书第18条,是对上一条和再上一条字典技巧的又一个有效和有趣的补充。

根据前两条对于需要处理key是否存在的字典运用中,可以用in,KeyError异常来处理,进一步优化为用get带默认值处理,再进一步优化为可以用setdefault方法和直接用defaultdict字典解决。

但是如果对于key对应的值还需要通过一些操作才能获取的情况下,setdefault和defaultdict都存在问题,就是导致对键值的操作重复处理,而且由于多个操作复合在一条语句,如果操作中出现异常则无法判断是在哪里出的异常,会带来麻烦。

针对这种情形,python给出一个在dict派生类里内置的__missing__函数,专门用来处理当键值不存在时的默认值处理操作,从而我们可以通过派生我们自己的dict类来自定义编写missing函数来解决上面问题。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

earthzhang2021

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值