python defaultdict详解
作者:互联网
经典结构:
- 首先判断这个key是否在字典种
- 如果不在, 那么给这个字典添加上这个key, 初始化
if key not in my_dict:
my_dict[key] = some_type # [] | {} | number | str
my_dict[key].process()
上面那种不是很美观, 引入defaultdict
defaultdict( lambda: x )
它接收一个func
, 没有参数 ,返回的就是key不存在时的默认值, 概念有点像
dict.get(key, default)
这种, key不存在, 返回默认值
如下例子, 不用判断默认值, 没有key的话, 拿到的就是默认的结构{'skeleton': set(), 'graphs': set()}
coding=utf-8
from collections import defaultdict
model_dict = defaultdict(lambda: {'skeleton': set(), 'graphs': set()})
print model_dict[2]['skeleton'].add(3)
print model_dict[2]['skeleton']
print model_dict[1]['skeleton']
# default_factory=None, key error时的返回值, 那么我们直接定义为lambda, 对应的返回对应的参数, 那么就不用判空了
if 2 not in model_dict:
model_dict[2] = {'skeleton': set(), 'graphs': set()}
else:
model_dict[2]['skeleton'].add(1)
# 上面的这种写法很普遍, 但是我们可以用defaultdict进行简化
标签:defaultdict,set,skeleton,python,详解,dict,key,model 来源: https://blog.csdn.net/qq_40666620/article/details/122419570