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

3256

被折叠的 条评论
为什么被折叠?



