详解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正则表达式re模块详细介绍
May 29 Python
python执行等待程序直到第二天零点的方法
Apr 23 Python
Python实现根据IP地址和子网掩码算出网段的方法
Jul 30 Python
关于Python如何避免循环导入问题详解
Sep 14 Python
PyQt5每天必学之组合框
Apr 20 Python
对python中for、if、while的区别与比较方法
Jun 25 Python
python如何删除文件中重复的字段
Jul 16 Python
Python列表操作方法详解
Feb 09 Python
Python3 字典dictionary入门基础附实例
Feb 10 Python
Tensorflow与Keras自适应使用显存方式
Jun 22 Python
pycharm激活码免费分享适用最新pycharm2020.2.3永久激活
Nov 25 Python
Python中json.dumps()函数的使用解析
May 17 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实现自动获取生成文章主题关键词功能的深入分析
2013/06/03 PHP
js基于qrcode.js生成二维码的方法【附demo插件源码下载】
2016/12/28 PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
2017/05/11 PHP
php获取数据库中数据的实现方法
2017/06/01 PHP
prototype class详解
2006/09/07 Javascript
javascript 异步页面查询实现代码(asp.net)
2010/05/26 Javascript
加载jQuery后$冲突的解决办法
2010/07/09 Javascript
分享纯手写漂亮的表单验证
2015/11/19 Javascript
详解JavaScript中双等号引起的隐性类型转换
2016/05/30 Javascript
jQuery实现点击弹出背景变暗遮罩效果实例代码
2016/06/24 Javascript
JavaScript随机打乱数组顺序之随机洗牌算法
2016/08/02 Javascript
jquery自动补齐功能插件flexselect用法示例
2016/08/06 Javascript
vue.js实现刷新当前页面的方法教程
2017/07/05 Javascript
详解EasyUi控件中的Datagrid
2017/08/23 Javascript
React Native验证码倒计时工具类分享
2017/10/24 Javascript
vue中手机号,邮箱正则验证以及60s发送验证码的实例
2018/03/16 Javascript
vue3.0 CLI - 2.1 -  component 组件入门教程
2018/09/14 Javascript
JavaScrip数组去重操作实例小结
2019/06/20 Javascript
[08:08]DOTA2-DPC中国联赛2月28日Recap集锦
2021/03/11 DOTA
Python实现CET查分的方法
2015/03/10 Python
浅谈Python中数据解析
2015/05/05 Python
python制作最美应用的爬虫
2015/10/28 Python
python用reduce和map把字符串转为数字的方法
2016/12/19 Python
python+selenium实现163邮箱自动登陆的方法
2017/12/31 Python
Python利用requests模块下载图片实例代码
2019/08/12 Python
Python xlrd模块导入过程及常用操作
2020/06/10 Python
python+selenium 简易地疫情信息自动打卡签到功能的实现代码
2020/08/22 Python
15个Pythonic的代码示例(值得收藏)
2020/10/29 Python
倩碧澳大利亚官网:Clinique澳大利亚
2019/07/22 全球购物
一些.net面试题
2014/10/06 面试题
C# Debug和Testing相关面试题
2015/10/25 面试题
运动会广播稿50字
2014/01/26 职场文书
追悼会主持词
2014/03/20 职场文书
大学活动总结格式
2014/04/29 职场文书
挂职学习心得体会
2014/09/09 职场文书
婚礼嘉宾致辞
2015/07/28 职场文书