defaultdict可以帮助我们初始化,它的参数作为default_factory

defaultdict是Python的collections库中的一个字典子类,它允许我们在访问不存在的键时提供一个默认值。通过设置default_factory参数,我们可以避免KeyError并方便地进行数据统计,如计数或收集列表。在示例中,defaultdict被用来统计字符串中字符的出现次数和存储商品的下单次数,展示了其简洁易用的特点。

defaultdict可以帮助我们初始化,它的参数作为default_factory,具体是怎么回事呢?今天番茄加速就来讲一下。在这里插入图片描述

DefaultDict是一个被初始化的字典,也就是每个键都已经被访问一次:

In [53]: d = defaultdict(int)

In [54]: for k in ‘collections’:

…: d[k] += 1

In [55]: d

Out[55]:

defaultdict(int,

{‘c’: 2, ‘o’: 2, ‘l’: 2, ‘e’: 1, ‘t’: 1, ‘i’: 1, ‘n’: 1, ‘s’: 1})

一般地,当你尝试访问一个不在字典中的值时,将会抛出一个异常。但是defaultdict可以帮助我们初始化,它的参数作为default_factory. 在上面例子中,将生成 int对象,意思是默认值为int 型,并设定初始值为0,所以我们可以很容易地统计每个字符出现的次数。

Simple and clean!

更有用的一个使用场景,我们有很多种商品,在每秒内下单次数的统计数据如下:

In [56]: data = [(‘iphone11’,103), (‘华为macbook-SKU1232’,210),(‘iphone11’,21),(’

…: 华为macbook-SKU1232’,100)]

In [57]: d = defaultdict(list)

In [58]: for ele in data:

…: d[ele[0]].append(ele[1])

In [59]: d

Out[59]: defaultdict(list, {‘iphone11’: [103, 21], ‘华为macbook-SKU1232’: [210, 100]})

上面例子default_dict取值为list, 因此,我们可以立即append一个元素到list中,更简洁。

总结

至此,你已经了解collections库中的DefaultDict类型,它确实太好用,大家可以操练起来!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值