详解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编程语言的35个与众不同之处(语言特征和使用技巧)
Jul 07 Python
Python中的赋值、浅拷贝、深拷贝介绍
Mar 09 Python
利用Django框架中select_related和prefetch_related函数对数据库查询优化
Apr 01 Python
python 的列表遍历删除实现代码
Apr 12 Python
python入门教程之识别验证码
Mar 04 Python
python 一篇文章搞懂装饰器所有用法(建议收藏)
Aug 23 Python
python批量将excel内容进行翻译写入功能
Oct 10 Python
Django框架请求生命周期实现原理
Nov 13 Python
python基于爬虫+django,打造个性化API接口
Jan 21 Python
详解python的变量缓存机制
Jan 24 Python
利用python实现汉诺塔游戏
Mar 01 Python
Python内置数据结构列表与元组示例详解
Aug 04 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 base64+gzinflate压缩编码和解码代码
2008/10/03 PHP
php中的注释、变量、数组、常量、函数应用介绍
2012/11/16 PHP
解析Extjs与php数据交互(增删查改)
2013/06/25 PHP
使用PHPMailer实现邮件发送代码分享
2014/10/23 PHP
php获取url参数方法总结
2014/11/13 PHP
JS日历 推荐
2006/12/03 Javascript
分析 JavaScript 中令人困惑的变量赋值
2007/08/13 Javascript
9行javascript代码获取QQ群成员具体实现
2013/10/16 Javascript
jquery操作HTML5 的data-*的用法实例分享
2014/08/17 Javascript
超棒的响应式布局jQuery插件Freetile.js
2014/11/17 Javascript
图解Sublime Text3使用技巧
2015/12/21 Javascript
js实现上传图片及时预览
2016/05/07 Javascript
学习Angular中作用域需要注意的坑
2016/08/17 Javascript
Bootstrap树形菜单插件TreeView.js使用方法详解
2016/11/01 Javascript
jquery中有哪些api jQuery主要API
2017/11/20 jQuery
原生js实现省市区三级联动代码分享
2018/02/12 Javascript
浅谈ajax请求不同页面的微信JSSDK问题
2018/02/26 Javascript
vue iview组件表格 render函数的使用方法详解
2018/03/15 Javascript
node.js博客项目开发手记
2018/03/16 Javascript
js遍历添加栏目类添加css 再点击其它删除css【推荐】
2018/06/12 Javascript
小程序tab页无法传递参数的方法
2018/08/03 Javascript
解决iview多表头动态更改列元素发生的错误的方法
2018/11/02 Javascript
vue中h5端打开app(判断是安卓还是苹果)
2021/02/26 Vue.js
[02:27]2018DOTA2亚洲邀请赛趣味视频之钓鱼大赛 谁是垂钓冠军?
2018/04/05 DOTA
详解python使用Nginx和uWSGI来运行Python应用
2018/01/09 Python
用Python从0开始实现一个中文拼音输入法的思路详解
2019/07/20 Python
Python获取时间范围内日期列表和周列表的函数
2019/08/05 Python
pyMySQL SQL语句传参问题,单个参数或多个参数说明
2020/06/06 Python
使用Django的JsonResponse返回数据的实现
2021/01/15 Python
CSS3 函数技巧 用css 实现js实现的事情(clac Counters Tooltip)
2017/08/15 HTML / CSS
使用HTML5技术开发一个属于自己的超酷颜色选择器
2013/09/22 HTML / CSS
Cynthia Rowley官网:全球领先的生活方式品牌
2020/10/27 全球购物
标准单位租车协议书
2014/09/23 职场文书
2014七年级班主任工作总结
2014/12/05 职场文书
利用JuiceFS使MySQL 备份验证性能提升 10 倍
2022/03/17 MySQL
Nginx的基本概念和原理
2022/03/21 Servers