Python--collections模块中的defaultdict()和内建函数dict()的区别

  1. dict()
    >>> aa = dict()   # 创建一个字典aa
    >>> aa["dd"]       # 访问字典中不存在的Key
    Traceback (most recent call last):     # 报错
      File "<stdin>", line 1, in <module>
    KeyError: 'dd'
    >>> aa["dd"] = 1
    >>> aa["dd"]
    1

     

  2. defaultdict()
    #没有使用函数来初始化defaultdict,其和普通字典(dict)功能一样
    
    >>> from collections import defaultdict
    >>> aa = defaultdict()  #创建一个默认字典
    >>> aa["dd"]            # 访问不存在的Key
    Traceback (most recent call last):  #仍然报错
      File "<stdin>", line 1, in <module>
    KeyError: 'dd'
    >>> aa["dd"] = 1
    >>> aa["dd"]
    1

     

    #使用函数来初始化defaultdict
    
    
    >>> from collections import defaultdict
    >>> aa = defaultdict(list)   # 使用list来初始化defaultdict()
    >>> aa["ff"]   # 访问不存在的Key并没有报错。
    []
    >>> aa
    defaultdict(<class 'list'>, {'ff': []})
    >>> aa["ff"].append(1)  # 给"ff"添加value
    >>> aa
    defaultdict(<class 'list'>, {'ff': [1]})
    
    
    
    >>> from collections import defaultdict
    >>> def fun():  # 使用自定义的函数来初始化defaultdict()
    ...     return "我是默认值"
    ...
    >>> aa = defaultdict(fun)
    >>> aa["gg"]
    '我是默认值'
    >>>

     

  3. defaultdict()和dict()的区别和共性:
  • defaultdict() 它最大的特点就是使用函数来初始化字典,当Key不存在时,它会根据传入的函数产生默认值。
  • dict() 它若访问不存在的Key时,会报错:KeyError。
  • 在其他方面,两个的用法基本一致。
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值