详解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的time模块中的常用方法整理
Jun 18 Python
Python 爬虫图片简单实现
Jun 01 Python
查看django执行的sql语句及消耗时间的两种方法
May 29 Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
Oct 24 Python
使用python+whoosh实现全文检索
Dec 09 Python
python使用ctypes调用扩展模块的实例方法
Jan 28 Python
Python如何实现线程间通信
Jul 30 Python
Django日志及中间件模块应用案例
Sep 10 Python
Python实现扫码工具的示例代码
Oct 09 Python
python opencv实现直线检测并测出倾斜角度(附源码+注释)
Dec 31 Python
python实现模拟器爬取抖音评论数据的示例代码
Jan 06 Python
python编程学习使用管道Pipe编写优化代码
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
暴雪前总裁遗憾:没尽早追赶Dota 取消星际争霸幽灵
2020/03/08 星际争霸
一个目录遍历函数
2006/10/09 PHP
PHP显示今天、今月、上月、今年的起点/终点时间戳的代码
2011/05/25 PHP
php实现用于验证所有类型的信用卡类
2015/03/24 PHP
浅析PHP中的闭包和匿名函数
2017/12/25 PHP
基于jquery的一个拖拽到指定区域内的效果
2011/09/21 Javascript
js 时间格式与时间戳的相互转换示例代码
2013/12/25 Javascript
js动态调用css属性的小规律及实例说明
2013/12/28 Javascript
js实现的类似于asp数据字典的数据类型代码实例
2014/09/03 Javascript
原生Ajax 和jQuery Ajax的区别示例分析
2014/12/17 Javascript
jQuery获取checkboxlist的value值的方法
2015/09/27 Javascript
BootStrap树状图显示功能
2016/11/24 Javascript
jQuery EasyUI 获取tabs的实例解析
2016/12/06 Javascript
JavaScript之Vue.js【入门基础】
2016/12/06 Javascript
使用Vue.observable()进行状态管理的实例代码详解
2019/05/26 Javascript
利用Python如何生成hash值示例详解
2017/12/20 Python
python操作redis方法总结
2018/06/06 Python
python环形单链表的约瑟夫问题详解
2018/09/27 Python
Python调用adb命令实现对多台设备同时进行reboot的方法
2018/10/15 Python
Python lambda表达式用法实例分析
2018/12/25 Python
python3.7 使用pymssql往sqlserver插入数据的方法
2019/07/08 Python
python实现坦克大战
2020/04/24 Python
HTML5新表单元素_动力节点Java学院整理
2017/07/12 HTML / CSS
canvas绘图按照contain或者cover方式适配并居中显示
2019/02/18 HTML / CSS
详解HTML5常用的语义化标签
2019/09/27 HTML / CSS
联想英国官网:Lenovo英国
2019/07/17 全球购物
打造完美自荐信
2014/01/24 职场文书
取保候审保证书
2014/04/30 职场文书
干部选拔任用方案
2014/05/26 职场文书
医学专业大学生求职信
2014/07/12 职场文书
党员对照检查材料思想汇报
2014/09/16 职场文书
听课评课活动心得体会
2016/01/15 职场文书
公文写作指导之倡议书!
2019/07/03 职场文书
写给医护人员的一封感谢信
2019/09/16 职场文书
Python+OpenCV实现在图像上绘制矩形
2022/03/21 Python
PostgreSQL基于pgrouting的路径规划处理方法
2022/04/18 PostgreSQL