python3 defaultdict_python基础—python3中的defaultdict()

1.collections.defaultdict 类

from collections import defaultdict

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

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

# 1-dict()

strings = ('puppy', 'kitten', 'puppy', 'puppy',

'weasel', 'puppy', 'kitten', 'puppy')

counts = {}

for kw in strings:

counts[kw] += 1

# 1-dict()

strings = ('puppy', 'kitten', 'puppy', 'puppy',

'weasel', 'puppy', 'kitten', 'puppy')

counts = {}

for kw in strings:

counts[kw] += 1

# 报错

#Traceback (most recent call last):

# File "C:\Users\summer\Desktop\demo.py", line 5, in

# counts[kw] += 1

#KeyError: 'puppy'

# 2-defaultdict()

from collections import defaultdict

strings = ('puppy', 'kitten', 'puppy', 'puppy',

'weasel', 'puppy', 'kitten', 'puppy')

counts = defaultdict(int)

for kw in strings:

counts[kw] += 1

print(counts)

# defaultdict(, {'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)返回的是工厂函数的实例,那么就具有了该工厂函数的相应方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值