本文作者:云初冀北

Python中如何给字典设置默认值

Python中如何给字典设置默认值摘要: Python字典设置默认值我们都知道,在 Python 的字典里边,如果 key 不存在的话,通过 key 去取值是会报错的。˃˃˃ aa = {'a':1, 'b':2}˃˃˃...

Python字典设置默认值

?=

我们都知道,在 python 的字典里边,如果 key 不存在的话,通过 key 去取值是会报错的。

>>> aa = {'a':1, 'b':2} >>> aa['c'] Traceback (most recent call last):   File "<sTDin>", line 1, in <module> KeyError: 'c'

如果我们在取不到值的时候不报错而是给定一个默认值的话就友好多了。

初始化的时候设定默认值(defaultdictDIct.fromkeys)

>>> from collectiONs import defaultdict >>> aa = defaultdict(int) >>> aa['a'] = 1 >>> aa['b'] = 2 >>> aa defaultdict(<class 'int'>, {'a': 1, 'b': 2}) >>> aa['c'] 0 >>> aa defaultdict(<class 'int'>, {'a': 1, 'b': 2, 'c': 0}) >>> aa = dict.fromkeys('abc', 0) >>> aa {'a': 0, 'b': 0, 'c': 0}

defaultdict(default_factory) 中的 default_factory 也可以传入自定义的匿名函数的哟。

>>> aa = defaultdict(Lambda : 1) >>> aa['a'] 1

获取值之前的时候设定默认值(setdefault(key, default))

这里有个比较特殊的点:只要对应的 key 已经被设定了值之后,那么对相同 key 再次设置默认值就没用了。

因此,如果你在循环里边给一个 key 重复设定默认值的话,那么也只会第一次设置的生效。

>>> aa = {'a':1, 'b':2} >>> aa {'a': 1, 'b': 2} >>> aa.Get('c') >>> aa.setdefault('c', 'hello') 'hello' >>> aa.get('c') 'hello' >>> aa {'a': 1, 'b': 2, 'c': 'hello'} >>> aa.setdefault('c', 'world') 'hello' >>> aa.get('c') 'hello'

获取值的时候设定默认值(dict.get(key, default))

>>> aa = {'a':1, 'b':2} >>> aa {'a': 1, 'b': 2} >>> aa['c'] Traceback (most recent call last):   File "<stdin>", line 1, in <module> KeyError: 'c' >>> aa.get('c') >>> aa {'a': 1, 'b': 2} >>> aa.get('c', 'hello') 'hello' >>> aa.get('b') 2

Python创建带默认值的字典

防止keyerror创建带默认值的字典

from collections import defaultdict data = collections.defaultdict(lambda :[])

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持云初冀北。

免责声明
本站提供的资源,都来自网络,版权争议与本站无关,所有内容及软件的文章仅限用于学习和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,我们不保证内容的长久可用性,通过使用本站内容随之而来的风险与本站无关,您必须在下载后的24个小时之内,从您的电脑/手机中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。侵删请致信E-mail:Goliszhou@gmail.com
$

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享

发表评论

快捷回复:

评论列表 (暂无评论,143人围观)参与讨论

还没有评论,来说两句吧...