博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python的defaultdict
阅读量:6092 次
发布时间:2019-06-20

本文共 1167 字,大约阅读时间需要 3 分钟。

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.    """

测试代码

完整代码: 

__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'])

运行结果

233333default_factorydefault_factory

 

如果defaultdict在创建的时候没有传入工厂函数,则在访问不存在的key时,会抛出KeyError

from collections import defaultdicttest_defaultdict2 = defaultdict()print(test_defaultdict2['x'])# KeyError: 'x'

 

转载于:https://www.cnblogs.com/blackmatrix/p/6905790.html

你可能感兴趣的文章
项目使用Entity Framework用到的公共操作方法基类(Repository)及其使用 (转载)
查看>>
《Python 学习手册4th》 第十七章 作用域
查看>>
Python爬虫学习==>第三章:Redis环境配置
查看>>
JS与AS通信-转
查看>>
JS中正则匹配开头不带空格,结尾也不带空格的字符串
查看>>
Maximal Rectangle
查看>>
windows下如何修改远程登录端口
查看>>
UVA 10603 Fill
查看>>
初学WebGL引擎-BabylonJS:第1篇-基础构造
查看>>
组策略链接顺序优先级
查看>>
c#与SQL中 double 与 float
查看>>
类样式操作
查看>>
Python&HDF5目录
查看>>
Vue -- 双向过滤器去除html标签
查看>>
H5禁止底部横向滚动条,使一个元素居中
查看>>
android 的安全问题
查看>>
skatebroads
查看>>
一些常用的命令和cheat sheet
查看>>
转----------数据库常见笔试面试题 - Hectorhua的专栏 - CSDN博客
查看>>
Android 界面设计 java.lang.NullPointerException 异常的解决方法
查看>>