python defaultdict用法

pre:
python 生成字典能够使用{},能够使用dict,生成的字典在 dict[key]取值时若是key不存在会报错python

defaultdict

当字典里的key不存在可是取值时不会报错,会返回一个默认值,默认值取决于初始化的工厂函数

  • dict =defaultdict(factory_function)app

  • factory_function函数

    1. factory_function为list时,默认值为[]
    2. factory_function为str时,默认值为"",即空字符串
    3. factory_function为set时,默认值为set()
    4. factory_function为int时,默认值为0
  • exp(list)code

    from collections import defaultdict
    # list 第一次返回空列表,能够实现数据合并
    s = [('red', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
    d = defaultdict(list)
    for k, v in s:
        d[k].append(v)
    print(d)
    # defaultdict(<class 'list'>, {'red': [1, 1], 'blue': [2, 4], 'yellow': [3]})
  • exp(int)字符串

    from collections import defaultdict
    # int 初始化返回0,实现计数
    str = "aswewesdcawreqmo"
    d = defaultdict(int)
    for s in str:
        d[s]+=1
    print(d)
    # defaultdict(<class 'int'>, {'a': 2, 's': 2, 'w': 3, 'e': 3, 'd': 1, 'c': 1, 'r': 1, 'q': 1, 'm': 1, 'o': 1})
相关文章
相关标签/搜索