为了账号安全,请及时绑定邮箱和手机立即绑定

collections.defaultdict如何运作?

collections.defaultdict如何运作?

扬帆大鱼 2019-07-31 13:59:55
collections.defaultdict如何运作?我已经阅读了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])]参数int和list用于什么?
查看完整描述

3 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

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


查看完整回答
反对 回复 2019-07-31
?
临摹微笑

TA贡献1982条经验 获得超2个赞

defaultdict表示如果在字典中找不到某个键,则会KeyError创建一个新条目而不是被抛出。这个新条目的类型由defaultdict的参数给出。


例如:


somedict = {}

print(somedict[3]) # KeyError


someddict = defaultdict(int)

print(someddict[3]) # print int(), thus 0


查看完整回答
反对 回复 2019-07-31
  • 3 回答
  • 0 关注
  • 767 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信