- 论坛徽章:
- 0
|
本帖最后由 remyzane 于 2013-12-06 19:07 编辑
回复 13# icymirror
多谢回复,
查了一下 defaultdict 是一个字典类,和原始的字典对象去的区别是:取不存在的键值时不会报错而是返回一个用户自己定义的对象(原始字典会报KeyError错误)
再看楼主的代码
adjacency = defaultdict(lambda:defaultdict(lambda:None))
是创建一个特殊的字典:adjacency,对该字典进行取值的时候,如果key不存在时也会返回一个字典 defaultdict(lambda:None)
对该返回的子字典进行取值的时候,如果key不存在会返回None而不是报错
效果演示:
from collections import defaultdict
adjacency = defaultdict(lambda:defaultdict(lambda:None))
emptysub = adjacency['emptysub']
print emptysub # defaultdict(<function <lambda> at 0x10ab1b230>, {})
emptysubsub = emptysub['emptysubsub']
print emptysubsub # None |
|