详解Python 中的 defaultdict 数据类型

2021-02-23 0 329

这篇文章给大家介绍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 中的 defaultdict 数据类型 http://www.ox520.com/28061.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务