python的defaultdict
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python的defaultdict相关的知识,希望对你有一定的参考价值。
defaultdict是dict的一个子类,接受一个工厂函数作为参数,当访问defaultdict中不存在的key时,会将工厂函数的返回值作为默认的value。
class defaultdict(dict): """ defaultdict(default_factory[, ...]) --> dict with default factory The default factory is called without arguments to produce a new value when a key is not present, in __getitem__ only. A defaultdict compares equal to a dict with the same items. All remaining arguments are treated the same as if they were passed to the dict constructor, including keyword arguments. """
测试代码
完整代码: https://github.com/blackmatrix7/python-learning/blob/master/other/defaultdict.py
__author__ = ‘blackmatrix‘ def factory_func(): return ‘default_factory‘ test_defaultdict = defaultdict(factory_func) if __name__ == ‘__main__‘: ‘‘‘ 当key存在时,返回的是key对应的value 这个时候和普通的dict没有什么区别 ‘‘‘ test_defaultdict[‘a‘] = ‘233333‘ print(test_defaultdict[‘a‘]) ‘‘‘ 当访问不存在的key时,自动将工厂函数的返回值作为默认值 ‘‘‘ print(test_defaultdict[‘b‘]) print(test_defaultdict[‘c‘])
运行结果
233333
default_factory
default_factory
如果defaultdict在创建的时候没有传入工厂函数,则在访问不存在的key时,会抛出KeyError
from collections import defaultdict test_defaultdict2 = defaultdict() print(test_defaultdict2[‘x‘]) # KeyError: ‘x‘
以上是关于python的defaultdict的主要内容,如果未能解决你的问题,请参考以下文章