详解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批量修改文件名的实现代码
Sep 01 Python
python中的闭包用法实例详解
May 05 Python
对python append 与浅拷贝的实例讲解
May 04 Python
python2.x实现人民币转大写人民币
Jun 20 Python
利用django-suit模板添加自定义的菜单、页面及设置访问权限
Jul 13 Python
python里运用私有属性和方法总结
Jul 08 Python
python中dict使用方法详解
Jul 17 Python
Python+Tensorflow+CNN实现车牌识别的示例代码
Oct 11 Python
Python3.7黑帽编程之病毒篇(基础篇)
Feb 04 Python
基于Python+QT的gui程序开发实现
Jul 03 Python
python爬取天气数据的实例详解
Nov 20 Python
Python paramiko使用方法代码汇总
Nov 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
一个从别的网站抓取信息的例子(域名查询)
2006/10/09 PHP
javascript 表单的友好用户体现
2009/01/07 Javascript
jQuery 操作下拉列表框实现代码
2010/02/22 Javascript
基于jQuery的的一个隔行变色,鼠标移动变色的小插件
2010/07/06 Javascript
文字不间断滚动(上下左右)实例代码
2013/04/21 Javascript
javascript Deferred和递归次数限制实例
2014/10/21 Javascript
javascript+canvas制作九宫格小程序
2014/12/28 Javascript
jQuery实现首页顶部可伸缩广告特效代码
2015/04/15 Javascript
JS Ajax请求如何防止重复提交
2016/06/13 Javascript
AngularJS 表达式详细讲解及实例代码
2016/07/26 Javascript
jQuery内存泄露解决办法
2016/12/13 Javascript
微信小程序使用wxParse解析html的方法教程
2018/07/06 Javascript
JavaScript类数组对象转换为数组对象的方法实例分析
2018/07/24 Javascript
Vue2.2.0+新特性整理及注意事项
2018/08/22 Javascript
在vue.js中使用JSZip实现在前端解压文件的方法
2018/09/05 Javascript
vue强制刷新组件的方法示例
2019/02/28 Javascript
vscode中eslint插件的配置(prettier配置无效)
2019/09/10 Javascript
vue配置nprogress实现页面顶部进度条
2019/09/21 Javascript
Vue路由守卫及页面登录权限控制的设置方法(两种)
2020/03/31 Javascript
[55:56]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
栈和队列数据结构的基本概念及其相关的Python实现
2015/08/24 Python
Java编程迭代地删除文件夹及其下的所有文件实例
2018/02/10 Python
Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)
2018/04/30 Python
Python自动化导出zabbix数据并发邮件脚本
2019/08/16 Python
windows下的pycharm安装及其设置中文菜单
2020/04/23 Python
美国体育用品在线:Modell’s Sporting Goods
2018/06/07 全球购物
优秀小学生家长评语
2014/01/30 职场文书
服装设计师职业生涯规划范文
2014/02/28 职场文书
航海技术专业毕业生求职信
2014/04/06 职场文书
2014年办公室人员工作总结
2014/12/09 职场文书
体育教师个人总结
2015/02/09 职场文书
运动会800米赞词
2015/07/22 职场文书
2016年教师节慰问信
2015/12/01 职场文书
创业计划书之溜冰场
2019/10/25 职场文书
Python安装使用Scrapy框架
2022/04/12 Python
Python 中面向接口编程
2022/05/20 Python