加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

14-python基础—python3中的defaultdict()

发布时间:2020-12-20 12:58:20 所属栏目:Python 来源:网络整理
导读:1.collections.defaultdict 类 from collections import defaultdict ? 2.collections.defaultdict 类与工厂函数dict比较: (1) 众所周知,在Python中如果访问dict字典中不存在的键,会引发KeyError异常。但是有时候,字典中的每个键都存在默认值是非常方便

1.collections.defaultdict 类

from collections import defaultdict

?

2.collections.defaultdict 类与工厂函数dict比较:

(1) 众所周知,在Python中如果访问dict字典中不存在的键,会引发KeyError异常。但是有时候,字典中的每个键都存在默认值是非常方便的。defaultdict可以避免KeyError异常。

 1 # 1-dict()
 2 strings = (puppy,kitten,puppy,puppy, 3    weasel,puppy)
 4 counts = {}
 5 for kw in strings:
 6  counts[kw] += 1
 7 
 8 # 报错
 9 #Traceback (most recent call last):
10 # File "C:UserssummerDesktopdemo.py",line 5,in <module>
11 #    counts[kw] += 1
12 #KeyError: ‘puppy‘
13 
14 # 2-defaultdict()
15 from collections import defaultdict
16 
17 strings = (puppy,18    weasel,puppy)
19 counts = defaultdict(int)
20 for kw in strings:
21  counts[kw] += 1
22 
23 print(counts)
24 
25 # defaultdict(<class ‘int‘>,{‘puppy‘: 5,‘kitten‘: 2,‘weasel‘: 1})

?

(2)default_factory 接收一个工厂函数作为参数,例如int str list set等.

defaultdict类的初始化函数接受一个类型作为参数,当所访问的键不存在的时候,可以实例化一个值作为默认值默认值的类型由工厂函数决定。

from collections import defaultdict

dic1 = defaultdict(int)
print(dic1[a])

dic2 = defaultdict(list)
print(dic2[a])

dic3 = defaultdict(dict)
print(dic3[a])

# 0
# []
# {}

?

(3)返回的是工厂函数的实例,那么就具有了该工厂函数的相应方法。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读