打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
python学习之defaultdict函数的使用和理解

今天在阅读代码时,发现了一个函数叫defaultdict,从字面上可以拆成default和dict,就是默认字典的意思,准确来说是字典的默认值。这个方法是在collections内置模块中,因此使用时,需要先从模块导入,如下所示:

from collections import defaultdict

一、问题描述

当我们在访问字典时,有可能存在访问的键值key不存在,那么就会返回一个KeyError报错

KeyError: 'A'

二、解决方法

解决这个问题的defaultdict是属于collections 模块下的一个工厂函数,用于构建字典对象, 其中的参数定义了key对应的值的数据类型,如下面的代码,字典result中值的数据类型是list。

from collections import defaultdictresult = defaultdict(list)data = [('A', 11), ('A', 12), ('A', 13), ('B', 21), ('B', 22), ('B', 23)]for (key, value) in data: result[key].append(value)print(result) # defaultdict(<type 'list'>, {'A': [11, 12, 13], 'B': [21, 22, 23]})

如果访问一个字典中不存在的key,就会返回默认值,空的列表。

print(result['A'])print(result['C'])

输出结果:

[11, 12, 13]

[]

三、其他测试

下面还测试了不同的数据类型作为字典的默认值。

dict1 = defaultdict(int)dict2 = defaultdict(str)dict3 = defaultdict(list)dict4 = defaultdict(tuple)dict4['a'] = 'hello world'print(dict1[0], dict2[0], dict3[0], dict4[0], dict4['a'])

输出结果:(0, '', [], (), 'hello world')

前面四个结果都是输出默认值,最后一个就输出存在的key 为'a'的值hello world。

经过上面的测试和说明,相信大家对defaultdict函数的使用有了更深入的理解。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
使用 collections 模块扩展你的数据类
使用python collections模块中提供的数据结构
collections模块
Python|defaultdict与dict的差异
UC头条:python基础知识
[快学Python3]Dictionary(字典)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服