写点什么

Python——默认字典 (defaultdict)

用户头像
在即
关注
发布于: 3 小时前
Python——默认字典 (defaultdict)

默认字典 (defaultdict)


  • 创建不同类型的默认字典。

  • 默认字典 (defaultdict)

默认字典的功能与 dict 基本相同,但在访问一个不存在的 key 时,默认字典会提供一个默认值,而不是引发异常。

1.创建默认字典

默认字典的构造函数接受一个工厂函数 default_factory 作为参数,可以将一个类型名看做是一个工厂函数,比如 list,tuple,str 等。

这个函数会在要生成默认值的时候无参调用,如果使用类型名作为工厂函数,则这个类型必须要有无参构造函数,比如:

dd = collections.defaultdict(int) #使用 int 作为工厂函数

print(dd['a']) #访问不存在的 key:'a'

dd = collections.defaultdict(tuple) #使用 tuple 作为工厂函数

print(dd['a']) #访问不存在的 key:'a'

dd = collections.defaultdict(str) #使用 str 作为工厂函数

print(dd['a']) #访问不存在的 key:'a'

class Test:

def __init__(self,name): #只有一个构造函数,而且它有一个参数

print("init")

dd = collections.defaultdict(Test) #使用自定义类型 Test 作为工厂函数

print(dd['a']) #运行到这里就会出现异常,原因是 Test 类没有无参的构造函数

直到最后一行语句之前,上面的结果是:

0

()

第三行是字符串的默认值:空字符串。

如果不提供工厂函数,那么默认值的功能就失效了,此时默认字典与普通 dict 表现的功能一致:

dd = collections.defaultdict()

#虽然 dd 是一个默认字典,但由于没有指定工厂函数,没办法产生一个默认值

#因此还是会发生异常

print(dd['a'])


编程要求

1.返回一个 int 类型的默认字典的默认值

2.返回一个 list 类型的默认字典的默认值

3.返回一个 tuple 类型的默认字典的默认值

4.返回一个 str 类型的默认字典的默认值


测试说明

测试输出:

int 默认字典的默认值: 0

list 默认字典的默认值: []

tuple 默认字典的默认值: ()

str 默认字典的默认值:


代码:

return dd

//如果注释理解有误,请大佬们多多评论指教!!

发布于: 3 小时前阅读数: 2
用户头像

在即

关注

记录学习进度 2021.02.27 加入

一个入门小白白!

评论

发布
暂无评论
Python——默认字典 (defaultdict)