详解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中的JSON使用
Apr 28 Python
linux下python抓屏实现方法
May 22 Python
在Python中操作时间之strptime()方法的使用
Dec 30 Python
python通过socket查询whois的方法
Jul 18 Python
在Django的模型和公用函数中使用惰性翻译对象
Jul 27 Python
Python简单实现安全开关文件的两种方式
Sep 19 Python
python中模块查找的原理与方法详解
Aug 11 Python
pandas DataFrame索引行列的实现
Jun 04 Python
python利用dlib获取人脸的68个landmark
Nov 27 Python
numpy np.newaxis 的实用分享
Nov 30 Python
Python tkinter 下拉日历控件代码
Mar 04 Python
Python使用tkinter制作在线翻译软件
Feb 22 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
长波有什么东西
2021/03/01 无线电
仿Aspnetpager的一个PHP分页类代码 附源码下载
2012/10/08 PHP
php缓存技术详细总结
2013/08/07 PHP
PHP根据session与cookie用户登录状态操作类的代码
2016/05/13 PHP
php自定义排序uasort函数示例【二维数组按指定键值排序】
2019/06/19 PHP
弹出广告特效(一个IP只弹出一次)的代码
2007/07/27 Javascript
jquery Mobile入门—外部链接切换示例代码
2013/01/08 Javascript
JS window对象的top、parent、opener含义介绍
2013/12/03 Javascript
理解Javascript的动态语言特性
2015/06/17 Javascript
JS中的eval 为什么加括号
2016/04/13 Javascript
angularJS Provider、factory、service详解及实例代码
2016/09/21 Javascript
任意Json转成无序列表的方法示例
2016/12/09 Javascript
微信小程序 两种滑动方式(横向滑动,竖向滑动)详细及实例代码
2017/01/13 Javascript
旺旺在线客服代码 旺旺客服代码生成器
2018/01/09 Javascript
使用react实现手机号的数据同步显示功能的示例代码
2018/04/03 Javascript
vue弹窗插件实战代码
2018/09/08 Javascript
判断js数据类型的函数实例详解
2019/05/23 Javascript
用Vue.js方法创建模板并使用多个模板合成
2019/06/28 Javascript
Python Web框架Flask中使用新浪SAE云存储实例
2015/02/08 Python
Python生成随机数组的方法小结
2017/04/15 Python
python+splinter实现12306网站刷票并自动购票流程
2018/09/25 Python
Python笔记之代理模式
2019/11/20 Python
python科学计算之scipy——optimize用法
2019/11/25 Python
Django模板标签{% for %}循环,获取制定条数据实例
2020/05/14 Python
opencv 图像礼帽和图像黑帽的实现
2020/07/07 Python
Django 用户认证Auth组件的使用
2020/11/30 Python
美国生日蛋糕店:Bake Me A Wish!
2017/02/08 全球购物
世界上第一个水枕头:Mediflow
2018/12/06 全球购物
营业经理岗位职责
2013/11/10 职场文书
出国留学计划书
2014/04/27 职场文书
学党史心得体会
2014/09/05 职场文书
2014领导班子专题民主生活会对照检查材料思想汇报
2014/09/23 职场文书
小学生校园广播稿
2014/09/28 职场文书
教师年终个人总结
2015/02/11 职场文书
调解协议书范本
2016/03/21 职场文书
深入浅出讲解Java8函数式编程
2022/01/18 Java/Android