您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python中defaultdict的用法详解

5b51 2022/1/14 8:17:00 python 字数 3531 阅读 332 来源 www.jb51.cc/python

初识defaultdict 之前在使用字典的时候,用的比较随意,只是简单的使用dict. 然而这样在使用不存在的key的时候发生KeyError这样的一个报错,这时候就该defaultdict登场了.

概述

@H_419_1@初识defaultdict

之前在使用字典的时候,用的比较随意,只是简单的使用dict.
然而这样在使用不存在的key的时候发生KeyError这样的一个报错,这时候就该defaultdict登场了.

@H_419_1@如何使用defaultdict

可以这样

from collections import defaultdict
d1 = defaultdict(int)

或者这样

import collections
d1 = collections.defaultdict(int)

@H_419_1@defaultdict与dict实例化字典类型的区别

使用defaultdict任何未定义的key都会认返回一个根据method_factory参数不同的认值,而相同情况下dict()会返回KeyError.
比较下面代码:

d1 = dict()
d2 = defaultdict(list)
print(d1['a'])
print(d2['a'])

@H_419_1@defaultdict的构造

python官方文档中对defaultdict的定义如下:

class collections.defaultdict([default_factory[,...]])

python官方文档中对defaultdict的解释如下:

defaultdic
dict subclass that calls a factory function to supply missing values

default_factory 接收一个工厂函数作为参数,例如int str list set等.
defaultdict在dict的基础上添加一个missing(key)方法,在调用一个不存的key的时候,defaultdict会调用__missing__,返回一个根据default_factory参数的认值,所以不会返回Keyerror.

@H_419_1@Example

Example 1

s = 'mississippi'
d = defaultdict(int)
for k in s:
  d[k] += 1
print(d)

Example 2

s = [('red',1),('blue',2),('red',3),4),4)]
d = defaultdict(set)
for k,v in s:
  d[k].add(v)

print(d)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

总结

以上是编程之家为你收集整理的python中defaultdict的用法详解全部内容,希望文章能够帮你解决python中defaultdict的用法详解所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶