详解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 相关文章推荐
在Linux下使用Python的matplotlib绘制数据图的教程
Jun 11 Python
Python多维/嵌套字典数据无限遍历的实现
Nov 04 Python
对python .txt文件读取及数据处理方法总结
Apr 23 Python
Python常见字典内建函数用法示例
May 14 Python
Python实现朴素贝叶斯分类器的方法详解
Jul 04 Python
Python爬虫框架Scrapy常用命令总结
Jul 26 Python
java中的控制结构(if,循环)详解
Jun 26 Python
python excel转换csv代码实例
Aug 26 Python
python实现图片上添加图片
Nov 26 Python
Python OpenCV实现测量图片物体宽度
May 27 Python
Python小白学习爬虫常用请求报头
Jun 03 Python
Keras保存模型并载入模型继续训练的实现
Feb 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扩展ZF――Validate扩展
2008/01/10 PHP
php输出含有“#”字符串的方法
2017/01/18 PHP
php魔法函数与魔法常量使用介绍
2017/07/23 PHP
php源码的使用方法讲解
2019/09/26 PHP
html5的自定义data-*属性和jquery的data()方法的使用示例
2013/08/21 Javascript
javascript判断两个IP地址是否在同一个网段的实现思路
2013/12/13 Javascript
Chrome下ifame父窗口调用子窗口的问题示例探讨
2014/03/17 Javascript
JS+CSS相对定位实现的下拉菜单
2015/10/06 Javascript
zTree插件下拉树使用入门教程
2016/04/11 Javascript
jQuery validate+artdialog+jquery form实现弹出表单思路详解
2016/04/18 Javascript
全面解析bootstrap格子布局
2016/05/22 Javascript
分享jQuery网页元素拖拽插件
2020/12/01 Javascript
Jquery AJAX POST与GET之间的区别详细介绍
2016/10/17 Javascript
AngularJS入门教程之数据绑定用法示例
2016/11/01 Javascript
jQuery在header中设置请求信息的方法
2017/03/06 Javascript
解决Node.js使用MySQL出现connect ECONNREFUSED 127.0.0.1:3306的问题
2017/03/09 Javascript
js实现数组内数据的上移和下移的实例
2017/11/14 Javascript
vue+element表格导出为Excel文件
2019/09/26 Javascript
解决echarts中横坐标值显示不全(自动隐藏)问题
2020/07/20 Javascript
动态实现element ui的el-table某列数据不同样式的示例
2021/01/22 Javascript
[02:19]2018年度DOTA2最佳核心位选手-完美盛典
2018/12/17 DOTA
Fiddler如何抓取手机APP数据包
2016/01/22 Python
Python栈算法的实现与简单应用示例
2017/11/01 Python
Python+Django搭建自己的blog网站
2018/03/13 Python
Python requests发送post请求的一些疑点
2018/05/20 Python
python实现多进程通信实例分析
2019/09/01 Python
Python实现点云投影到平面显示
2020/01/18 Python
python opencv进行图像拼接
2020/03/27 Python
CSS3实现莲花绽放的动画效果
2020/11/06 HTML / CSS
构造方法和其他方法的区别
2016/04/26 面试题
七年级政治教学反思
2014/02/03 职场文书
致200米运动员广播稿
2014/02/06 职场文书
物流专员岗位职责
2014/02/17 职场文书
检查接待方案
2014/02/27 职场文书
我的求职择业计划书
2014/04/04 职场文书
python munch库的使用解析
2021/05/25 Python