python中defaultdict的用法详解

发布时间 - 2026-01-11 01:46:20    点击率:

初识defaultdict

之前在使用字典的时候, 用的比较随意, 只是简单的使用dict.
然而这样在使用不存在的key的时候发生KeyError这样的一个报错, 这时候就该defaultdict登场了.

如何使用defaultdict

可以这样

from collections import defaultdict
d1 = defaultdict(int)

或者这样

import collections
d1 = collections.defaultdict(int)

defaultdict与dict实例化字典类型的区别

使用defaultdict任何未定义的key都会默认返回一个根据method_factory参数不同的默认值, 而相同情况下dict()会返回KeyError.
比较下面代码:

d1 = dict()
d2 = defaultdict(list)
print(d1['a'])
print(d2['a'])

defaultdict的构造

python官方文档中对defaultdict的定义如下:

class collections.defaultdict([default_factory[, ...]])

python官方文档中对defaultdict的解释如下:

defaultdic
dict subclass that calls a factory function to supply missing values

default_factory 接收一个工厂函数作为参数, 例如int str list set等.
defaultdict在dict的基础上添加了一个missing(key)方法, 在调用一个不存的key的时候, defaultdict会调用__missing__, 返回一个根据default_factory参数的默认值, 所以不会返回Keyerror.

Example

Example 1

s = 'mississippi'
d = defaultdict(int)
for k in s:
  d[k] += 1
print(d)

Example 2

s = [('red', 1), ('blue', 2), ('red', 3), ('blue', 4), ('red', 1), ('blue', 4)]
d = defaultdict(set)
for k, v in s:
  d[k].add(v)

print(d)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# python  # defaultdict  # Python标准库defaultdict模块使用示例  # 详解Python 中的 defaultdict 数据类型  # 详解Python中defaultdict的具体使用  # python中defaultdict字典功能特性介绍  # Python中defaultdict方法常见的使用方法及问题解答  # 中对  # 默认值  # 文档  # 基础上  # 不存在  # 报错  # 就该  # 如何使用  # 大家多多  # 情况下  # 这时候  # br  # int  # pre  # strong  # method_factory  # import  # dict  # key 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 网站制作壁纸教程视频,电脑壁纸网站?  Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑  如何在阿里云部署织梦网站?  如何在云服务器上快速搭建个人网站?  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  nginx修改上传文件大小限制的方法  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  浅谈javascript alert和confirm的美化  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  如何用低价快速搭建高质量网站?  如何正确下载安装西数主机建站助手?  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  手机网站制作与建设方案,手机网站如何建设?  如何有效防御Web建站篡改攻击?  如何快速搭建高效可靠的建站解决方案?  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  如何快速生成ASP一键建站模板并优化安全性?  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区  详解Android图表 MPAndroidChart折线图  Bootstrap整体框架之CSS12栅格系统  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  Android okhttputils现在进度显示实例代码  Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面  活动邀请函制作网站有哪些,活动邀请函文案?  如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】  Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践  如何在新浪SAE免费搭建个人博客?  如何在Tomcat中配置并部署网站项目?  Laravel如何实现密码重置功能_Laravel密码找回与重置流程  1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  Swift中switch语句区间和元组模式匹配  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  js代码实现下拉菜单【推荐】  php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  教你用AI将一段旋律扩展成一首完整的曲子  Win11关机界面怎么改_Win11自定义关机画面设置【工具】  成都网站制作公司哪家好,四川省职工服务网是做什么用?  晋江文学城电脑版官网 晋江文学城网页版直接进入  JavaScript中的标签模板是什么_它如何扩展字符串功能  百度输入法ai组件怎么删除 百度输入法ai组件移除工具