详解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 thread 并发且顺序运行示例
Apr 09 Python
Python解析网页源代码中的115网盘链接实例
Sep 30 Python
Python有序查找算法之二分法实例分析
Dec 11 Python
Python利用matplotlib.pyplot绘图时如何设置坐标轴刻度
Apr 09 Python
Python中pillow知识点学习
Apr 30 Python
Python运行不显示DOS窗口的解决方法
Oct 22 Python
对python操作kafka写入json数据的简单demo分享
Dec 27 Python
python实现飞机大战游戏
Oct 26 Python
python如何实现视频转代码视频
Jun 17 Python
使用python批量修改文件名的方法(视频合并时)
Mar 24 Python
tensorflow之并行读入数据详解
Feb 05 Python
浅谈matplotlib.pyplot与axes的关系
Mar 06 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与MYSQL中UTF8 中文排序示例代码
2014/10/23 PHP
初识Laravel
2014/10/30 PHP
PHP基于MySQL数据库实现对象持久层的方法
2015/06/17 PHP
PHP实现通过get方式识别用户发送邮件的方法
2015/07/16 PHP
JavaScript 浏览器验证代码(来自discuz)
2010/07/17 Javascript
简易js代码实现计算器操作
2013/04/15 Javascript
jQuery实现的漂亮表单效果代码
2015/08/18 Javascript
JavaScript实现表格快速变色效果代码
2015/08/19 Javascript
如何用JS判断两个数字的大小
2016/07/21 Javascript
JS基于HTML5的canvas标签实现炫目的色相球动画效果实例
2016/08/24 Javascript
JS 拼凑字符串的简单实例
2016/09/02 Javascript
js运动事件函数详解
2016/10/21 Javascript
Echarts基本用法_动力节点Java学院整理
2017/08/11 Javascript
springmvc接收jquery提交的数组数据代码分享
2017/10/28 jQuery
JavaScript对JSON数组简单排序操作示例
2019/01/31 Javascript
Vue组件内部实现一个双向数据绑定的实例代码
2019/04/04 Javascript
[01:45:05]VGJ.T vs Newbee Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
python类型强制转换long to int的代码
2013/02/10 Python
Python3字符串学习教程
2015/08/20 Python
Python处理JSON时的值报错及编码报错的两则解决实录
2016/06/26 Python
Python在线运行代码助手
2016/07/15 Python
Python实现二分查找与bisect模块详解
2017/01/13 Python
Mac在python3环境下安装virtualwrapper遇到的问题及解决方法
2019/07/09 Python
python中的selenium安装的步骤(浏览器自动化测试框架)
2020/03/17 Python
Python读取xlsx数据生成图标代码实例
2020/08/12 Python
主治医师岗位职责
2013/12/10 职场文书
出生医学证明样本
2014/01/17 职场文书
临床专业自荐信
2014/06/22 职场文书
2015年监理工作总结范文
2015/04/07 职场文书
搞笑结婚保证书
2015/05/08 职场文书
2016年度师德标兵先进事迹材料
2016/02/26 职场文书
Unity连接MySQL并读取表格数据的实现代码
2021/06/20 MySQL
SQL Server数据库基本概念、组成、常用对象与约束
2022/03/20 SQL Server
使用Docker容器部署rocketmq单机的全过程
2022/04/03 Servers
我家女友可不止可爱呢 公开OP主题曲无字幕动画MV
2022/04/11 日漫
Spring Boot接口定义和全局异常统一处理
2022/04/20 Java/Android