python中defaultdict的用法详解
程序员文章站
2024-02-29 08:58:46
初识defaultdict
之前在使用字典的时候, 用的比较随意, 只是简单的使用dict.
然而这样在使用不存在的key的时候发生KeyError这样的一个报错,...
初识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基础之I/O模型
推荐阅读
-
python中的break、continue、exit()、pass全面解析
-
使用Python的Django框架中的压缩组件Django Compressor
-
python 第三方库的安装及pip的使用详解
-
浅谈numpy中linspace的用法 (等差数列创建函数)
-
python中defaultdict的用法详解
-
Python中easy_install 和 pip 的安装及使用
-
详解JDK中ExecutorService与Callable和Future对线程的支持
-
详解Android XML中引用自定义内部类view的四个why
-
Python实现读取邮箱中的邮件功能示例【含文本及附件】
-
浅谈python socket函数中,send与sendall的区别与使用方法