Python中的defaultdict方法接受

defaultdict是Python内置dict的子类,用于避免KeyError异常,它会在键不存在时提供默认值。这个默认值由传入的工厂函数决定,如list、set、str等。本文将介绍defaultdict的工作原理及如何使用defaultdict(list)。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. defaultdict是Python内建dict类的一个子类,第一个参数为default_factory属性提供初始值,默认为None。它覆盖一个方法并添加一个可写实例变量。它的其他功能与dict相同,但会为一个不存在的键提供默认值,从而避免KeyError异常。

这时defaultdict就能排上用场了,defaultdict的作用是在于,当字典里的key不存在但被查找时,返回的不是keyError而是一个默认值,这个默认值是什么呢,下面会说

如何使用defaultdict

defaultdict接受一个工厂函数作为参数,如下来构造:

dict =defaultdict( factory_function)

这个factory_function可以是list、set、str,dict 等等,作用是当key不存在时,返回的是工厂函数的默认值,比如list对应[ ],str对应的是空字符串,set对应set( ),int对应0, dict 对应的是 {},

rom collections import defaultdict

dict1 = defaultdict(int)
dict2 = defaultdict(set)
dict3 = defaultdict(str)
dict4 = defaultdict(list)

print(dict1[1])
print(dict2[1])
print(dict3[1])
print(dict4[1])

# 输出

0
set()

[]

 

2. defaultdict(list)  的使用

""" defaultdict(list) 测试 """

cc = {}
# print(cc[1])  #当所访问的键不存在的时候,会报错!
cc[1]='zhang'   # 相当于对字典进行添加
print(cc[1])    # 结果为: zhang
print(cc)       # 结果为: {1: 'zhang'}

#----------------------------------------

from collections import defaultdict

#  对于 list
dd = defaultdict(list)  #defaultdict类的初始化函数接受一个类型作为参数,当所访问的键不存在的时候,可以实例化一个值作为默认值:

print(dd[1])         # 结果为: []
print(dd)            # 结果为: defaultdict(<class 'list'>, {1: []})  类对象

dd[1].append('zhang')
print(dd[1])         # 结果:['zhang']
print(dd)              # 结果为 : defaultdict(<class 'list'>, {1: ['zhang']})
print(list(dd))         # [1]
print(dict(dd))         # {1: ['zhang']}

#ex  对于dict
ss = defaultdict(dict)
print(ss[1])        # 结果为 : {}

ss[1]='lisi'
print(ss[1])         # 结果为 : lisi
print(ss)           # 结果为   defaultdict(<class 'dict'>, {1: 'lisi'})

print(dict(ss))       # 结果为: {1: 'lisi'}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值