collections模块之defaultdict
初识defaultdict
之前在使用字典的时候, 用的比较随意, 只是简单的使用dict.
然而这样在使用不存在的key的时候发生KeyError这样的一个报错, 这时候就该defaultdict登场了.
如何使用defaultdict
可以这样
from collections import defaultdict
d1 = defaultdict(int)
或者这样
import collections
d1 = collections.defaultdict(int)
defaultdict的源码
如下:
class collections.defaultdict([default_factory) # 一个参数,确定字典值的默认类型
python官方文档中对defaultdict的解释如下:
default_factory 接收一个工厂函数作为参数, 例如int str list set等.
defaultdict在dict的基础上添加了一个missing(key)方法, 在调用一个不存的key的时候, defaultdict会调用__missing__, 返回一个根据default_factory参数的默认值, 所以不会返回Keyerror.
defaultdict与dict实例化字典类型的区别**
使用defaultdict任何未定义的key都会默认返回一个根据method_factory参数不同的默认值, 而相同情况下dict()会返回KeyError.
比较下面代码:
d1 = dict()
d2 = defaultdict(list)
print(d1['a']) # 直接报错keyErorr
print(d2['a']) # 输出 [] # 因为defaultdict里传的参数为list,所以默认值为一个空列表,
# 如果传的参数是int则默认值为0,如果传的参数是str会输出一个默认的空字符串
collections模块之defaultdict相关推荐
- python中的defaultdict_简介Python的collections模块中defaultdict类型的用法
defaultdict 主要用来需要对 value 做初始化的情形.对于字典来说,key 必须是 hashable,immutable,unique 的数据,而 value 可以是任意的数据类型.如果 ...
- Python collections 模块 namedtuple、Counter、defaultdict
1. namedtuple 假设有两个列表,如下,要判断两个列表中的某一个索引值是否相等. In [7]: p = ['001', 'wohu', '100', 'Shaanxi']In [8]: t ...
- python collections模块(数据结构常用模块)计数器Counter 双向队列deque 默认字典defaultdict 有序字典OrderedDict 可命名元组namedtuple
collections 模块----Python标准库,是数据结构常用模块 常用类型有: 计数器(Counter) 双向队列(deque) 默认字典(defaultdict) 有序字典(Ordered ...
- Python的重要模块:collections (namedtuple、defaultdict、deque、Counter、OrderedDict、ChainMap)
collections 模块作用 包含双端队列 deque.默认字典 defaultdict.命名元组 namedtuple.计数器 Counter.Ordereddict 和 ChainMap 等重 ...
- python︱ collections模块(namedtuple/defaultdict/OrderedDict等)
collections有的功能: ['deque', 'defaultdict', 'namedtuple', 'UserDict', 'UserList', 'UserString',\'Count ...
- Python标准库——collections模块的Counter类
更多16 最近在看一本名叫<Python Algorithm: Mastering Basic Algorithms in the Python Language>的书,刚好看到提到这个C ...
- python中collections_Python中的collections模块
Python中内置了4种数据类型,包括:list,tuple,set,dict,这些数据类型都有其各自的特点,但是这些特点(比如dict无序)在一定程度上对数据类型的使用产生了约束,在某些使用场景下效 ...
- collections模块简介
collections模块简介 除python提供的内置数据类型(int.float.str.list.tuple.dict)外,collections模块还提供了其他数据类型,使用如下功能需先导入c ...
- collections模块
collections模块在内置数据类型(dict.list.set.tuple)的基础上,还提供了几个额外的数据类型:ChainMap.Counter.deque.defaultdict.named ...
最新文章
- Spring入门详细教程(一)
- c++同一屏幕输出多种颜色字体
- HDU3400(计算几何中的三分法利用)
- 19秋学期计算机网络基础在线作业,南开19秋学期(1709、1803、1809、1903、1909)《计算机网络基础》在线作业资料答案3...
- 运行Java程序时 Tomcat出错 显示端口被占用
- 数据库 统计数据收集 有什么作用_《原神》荒山孤剑录2/5收集汇总 荒山孤剑录作用是什么...
- IAR使用技巧 之 快捷键批量更换指定字符(以及Keil的全局替换功能)
- H3C VLAN同步MVRP实验
- guava 的重试机制 guava-retrying 使用
- 商务办公软件应用与实践【4】
- linux救黑砖手机,手机黑砖9006/9008救砖教程 通用救砖模式详细流程
- 前端css简易拾色器
- 自己设计个动态屏保吧
- win下使用curl
- 接口可维可测;统一管理
- 程序员今年最值得关注的 23 种新移动技术
- React上拉加载和下拉刷新
- Vistor VTL 虚拟磁带机相关问题
- 微信小程序总结(阶段第一次总结)
- 编码解码--url编码解码