首页 > 代码库 > python的defaultdict
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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。