小编典典

collections.defaultdict 是如何工作的?

all

我已经阅读了 python 文档中的示例,但仍然无法弄清楚这种方法的含义。有人可以帮忙吗?这是python文档中的两个示例

>>> from collections import defaultdict

>>> s = 'mississippi'
>>> d = defaultdict(int)
>>> for k in s:
...     d[k] += 1
...
>>> d.items()
[('i', 4), ('p', 2), ('s', 4), ('m', 1)]

>>> s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
>>> d = defaultdict(list)
>>> for k, v in s:
...     d[k].append(v)
...
>>> d.items()
[('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])]

参数intlist用途是什么?


阅读 116

收藏
2022-03-03

共1个答案

小编典典

KeyError通常,如果您尝试使用当前不在字典中的键获取项目,则Python 字典会抛出 a
defaultdict对比只会创建您尝试访问的任何项目(当然前提是它们尚不存在)。要创建这样一个“默认”项,它会调用您传递给构造函数的函数对象(更准确地说,它是一个任意的“可调用”对象,包括函数和类型对象)。对于第一个示例,默认项是使用创建的int(),它将返回整数对象0。对于第二个示例,默认项是使用
创建的list(),它返回一个新的空列表对象。

2022-03-03