详解Python 中的 defaultdict 数据类型


Posted in Python onFebruary 22, 2021

这篇文章给大家介绍Python 中的 defaultdict 数据类型,具体内容如下所示:

官方网址

首先,defaultdictdict 的一个子类。通常 Python 中字典(dict)这种数据类型是通过键值对来存取的,当索引一个不存在的键时,就会引发 keyerror 异常。那么,defaultdict 就可以解决这个问题,它可以实现为不存的键值返回一个默认值。

详解Python 中的 defaultdict 数据类型

defaultdictcollections 包下的一个模块,defaultdict 在初始化时可以提供一个 default_factory 的参数,default_factory 接收一个工厂函数作为参数, 可以是 int、str、list 等内置函数,也可以是自定义函数。

用法实例如下:

示例一: 统计字符串中字母出现的个数。

from collections import defaultdict

s = 'mississippi'
d = defaultdict(int)
for k in s:
 d[k] += 1
print(d)

# 输出
# defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2})

如果不用 defaultdict 的话,写法如下:

s = 'mississippi'
d = {}
for k in s:
 if k not in d:
  d[k] = 1
 else:
  d[k] = d[k] + 1
print(d)

# 输出
# {'m': 1, 'i': 4, 's': 4, 'p': 2}
s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
d = defaultdict(list)
for k, v in s:
 d[k].append(v)
print(d)

# 输出
# defaultdict(<class 'list'>, {'yellow': [1, 3], 'blue': [2, 4], 'red': [1]})

示例二: 使用 lambda 函数。

q = defaultdict(lambda: [0, 0, 0])
print(q['a'])

# 输出
# [0, 0, 0]

到此这篇关于Python 中的 defaultdict 数据类型的文章就介绍到这了,更多相关Python defaultdict 数据类型内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python 冒泡,选择,插入排序使用实例
Feb 05 Python
Python爬虫辅助利器PyQuery模块的安装使用攻略
Apr 24 Python
Python爬虫实例_城市公交网络站点数据的爬取方法
Jan 10 Python
python实现淘宝秒杀聚划算抢购自动提醒源码
Jun 23 Python
python实现控制台打印的方法
Jan 12 Python
详解Python3 基本数据类型
Apr 19 Python
在Pycharm中调试Django项目程序的操作方法
Jul 17 Python
python函数修饰符@的使用方法解析
Sep 02 Python
Pyinstaller 打包发布经验总结
Jun 02 Python
什么是python的必选参数
Jun 21 Python
Django对接elasticsearch实现全文检索的示例代码
Aug 02 Python
Python IO文件管理的具体使用
Mar 20 Python
python快速安装OpenCV的步骤记录
Feb 22 #Python
Python中生成ndarray实例讲解
Feb 22 #Python
python爬虫利用代理池更换IP的方法步骤
Feb 21 #Python
Python用requests库爬取返回为空的解决办法
Feb 21 #Python
python利用proxybroker构建爬虫免费IP代理池的实现
Feb 21 #Python
python实现图片转字符画的完整代码
Feb 21 #Python
利用Python实现最小二乘法与梯度下降算法
Feb 21 #Python
You might like
PHP下操作Linux消息队列完成进程间通信的方法
2010/07/24 PHP
PHP Parse Error: syntax error, unexpected $end 错误的解决办法
2012/06/05 PHP
php 目录遍历、删除 函数的使用介绍
2013/04/28 PHP
根据中文裁减字符串函数的php代码
2013/12/03 PHP
php处理多图上传压缩代码功能
2018/06/13 PHP
window.open的功能全解析
2006/10/10 Javascript
JS Loading功能的简单实现
2013/11/29 Javascript
完美兼容各大浏览器获取HTTP_REFERER方法总结
2014/06/24 Javascript
javascript折半查找详解
2015/01/26 Javascript
jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法
2016/01/19 Javascript
分享10个优化代码的CSS和JavaScript工具
2016/05/11 Javascript
JS递归遍历对象获得Value值方法技巧
2016/06/14 Javascript
javascript表单正则应用
2017/02/04 Javascript
JavaScript纯色二维码变成彩色二维码
2020/07/23 Javascript
解决html input验证只能输入数字,不能输入其他的问题
2017/07/21 Javascript
nodejs动态创建二维码的方法
2017/08/12 NodeJs
微信小程序选择图片和放大预览图片功能
2017/11/02 Javascript
基于百度地图api清除指定覆盖物(Overlay)的方法
2018/01/26 Javascript
Vue实现简易翻页效果源码分享
2018/11/08 Javascript
基于vue实现微博三方登录流程解析
2020/11/04 Javascript
[42:52]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python 包含汉字的文件读写之每行末尾加上特定字符
2016/12/12 Python
Python如何快速实现分布式任务
2017/07/06 Python
Python使用LDAP做用户认证的方法
2019/06/20 Python
python读取文件指定行内容实例讲解
2020/03/02 Python
python实现opencv+scoket网络实时图传
2020/03/20 Python
用缩写的指针比较"if(p)" 检查空指针是否可靠?如果空指针的内部表达不是0会怎么样?
2014/01/05 面试题
如何填写个人简历自我评价
2013/12/10 职场文书
回门宴答谢词
2014/01/13 职场文书
出国考察邀请函
2014/01/21 职场文书
客服专员岗位职责
2014/02/28 职场文书
捐款倡议书格式范文
2014/05/14 职场文书
2015个人简历自我评价语
2015/03/11 职场文书
2015年出纳个人工作总结
2015/04/02 职场文书
大学生如何逃脱“毕业季创业队即散伙”魔咒?
2019/08/19 职场文书
pytorch 梯度NAN异常值的解决方案
2021/06/05 Python