python中defaultdict的用法详解,pythondefaultdict
python中defaultdict的用法详解,pythondefaultdict
初识defaultdict
之前在使用字典的时候, 用的比较随意, 只是简单的使用dict.
然而这样在使用不存在的key的时候发生KeyError这样的一个报错, 这时候就该defaultdict登场了.
如何使用defaultdict
可以这样
from collections import defaultdict d1 = defaultdict(int)
或者这样
import collections d1 = collections.defaultdict(int)
defaultdict与dict实例化字典类型的区别
使用defaultdict任何未定义的key都会默认返回一个根据method_factory参数不同的默认值, 而相同情况下dict()会返回KeyError.
比较下面代码:
d1 = dict() d2 = defaultdict(list) print(d1['a']) print(d2['a'])
defaultdict的构造
python官方文档中对defaultdict的定义如下:
class collections.defaultdict([default_factory[, ...]])
python官方文档中对defaultdict的解释如下:
defaultdic dict subclass that calls a factory function to supply missing values
default_factory 接收一个工厂函数作为参数, 例如int str list set等.
defaultdict在dict的基础上添加了一个missing(key)方法, 在调用一个不存的key的时候, defaultdict会调用__missing__, 返回一个根据default_factory参数的默认值, 所以不会返回Keyerror.
Example
Example 1
s = 'mississippi' d = defaultdict(int) for k in s: d[k] += 1 print(d)
Example 2
s = [('red', 1), ('blue', 2), ('red', 3), ('blue', 4), ('red', 1), ('blue', 4)] d = defaultdict(set) for k, v in s: d[k].add(v) print(d)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持帮客之家。
相关内容
- Python中音频处理库pydub的使用教程,pythonpydub
- Python2.7基于淘宝接口获取IP地址所在地理位置的方法【
- Python实现获取磁盘剩余空间的2种方法,python2种
- Python3 socket同步通信简单示例,python3socket
- python用pickle模块实现“增删改查”的简易功能,python
- Python实现的手机号归属地相关信息查询功能示例,pyt
- Python实现对象转换为xml的方法示例,pythonxml
- Python使用pylab库实现画线功能的方法详解,pythonpylab
- Python中with及contextlib的用法详解,pythoncontextlib
- Python实现多线程抓取网页功能实例详解,python多线程
评论关闭