详解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 相关文章推荐
django 自定义用户user模型的三种方法
Nov 18 Python
Python中return语句用法实例分析
Aug 04 Python
python实现树形打印目录结构
Mar 29 Python
python实现excel读写数据
Mar 02 Python
python 重命名轴索引的方法
Nov 10 Python
解决pycharm运行程序出现卡住scanning files to index索引的问题
Jun 27 Python
django 微信网页授权登陆的实现
Jul 30 Python
Python 中pandas索引切片读取数据缺失数据处理问题
Oct 09 Python
python3.7中安装paddleocr及paddlepaddle包的多种方法
Nov 27 Python
python asyncio 协程库的使用
Jan 21 Python
pytorch __init__、forward与__call__的用法小结
Feb 27 Python
Python OpenCV实现传统图片格式与base64转换
Jun 13 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 zend解密软件绿色版测试可用
2008/04/14 PHP
php输入流php://input使用示例(php发送图片流到服务器)
2013/12/25 PHP
Centos6.5和Centos7 php环境搭建方法
2016/05/27 PHP
Yii2 ActiveRecord多表关联及多表关联搜索的实现
2016/06/30 PHP
在Laravel 中实现是否关注的示例
2019/10/22 PHP
根据分辨率不同,调用不同的css文件
2006/07/07 Javascript
Javascript hasOwnProperty 方法 &amp; in 关键字
2008/11/26 Javascript
类似GMAIL的Ajax信息反馈显示
2010/02/16 Javascript
javascript for循环从入门到偏门(效率优化+奇特用法)
2012/08/01 Javascript
Javascript快速排序算法详解
2014/12/03 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
2015/06/10 Javascript
js实现统计字符串中特定字符出现个数的方法
2016/08/02 Javascript
jQuery.form.js的使用详解
2017/06/14 jQuery
Vue.js项目部署到服务器的详细步骤
2017/07/17 Javascript
js实现图片粘贴上传到服务器并展示的实例
2017/11/08 Javascript
js中的闭包实例展示
2018/11/01 Javascript
js实现京东秒杀倒计时功能
2019/01/21 Javascript
js图片无缝滚动插件使用详解
2020/05/26 Javascript
[06:57]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD 选手采访
2021/03/11 DOTA
Python实现3行代码解简单的一元一次方程
2014/08/18 Python
Python 一句话生成字母表的方法
2019/01/02 Python
python的mysql数据库建立表与插入数据操作示例
2019/09/30 Python
html5 移动端视频video的android兼容(去除播放控件、全屏)
2020/03/26 HTML / CSS
中专自荐信
2013/10/13 职场文书
食堂个人先进事迹
2014/01/22 职场文书
学习方法演讲稿
2014/05/10 职场文书
硕士研究生就业推荐信
2014/05/18 职场文书
素质教育标语
2014/06/27 职场文书
车辆转让协议书
2014/09/24 职场文书
高校师德师风自我剖析材料
2014/09/29 职场文书
初三毕业评语
2014/12/26 职场文书
黄埔军校观后感
2015/06/10 职场文书
Django 如何实现文件上传下载
2021/04/08 Python
Python Pytorch查询图像的特征从集合或数据库中查找图像
2022/04/09 Python
如何通过cmd 连接阿里云服务器
2022/04/18 Servers
Redis批量生成数据的实现
2022/06/05 Redis