Python-容器数据类型(collections)[2]

defaultdict对象

defaultdict在字典dict的基础之上添加一个参数default_factory(default_factory可以指定为list,set,int)

  • 例子1:将下面的list转换成一个dict,其中key对应的value是一个list

    from collections import defaultdict
    l=[('a',2),('b',3),('a',1),('b',4),('a',3),('a',1),('b',3)]
    d=defaultdict(list)
    for key,value in l:
          d[key].append(value)
    print(d)
    # out: defaultdict(<class 'list'>,{'a':[2,1,3,1],'b':[3,4,3]}
    
  • 例子2:例1中value中包含重复元素,如果我们不想要value中的元素重复,可以用defaultdict(set)来解决这个问题。

    d = defaultdict(set)
    for key,value in s:
        d[key].add(value)
    print(d)
    # out: defaultdict(<class 'set'>, {'a': {2,1,3}, 'b': {3,4}})
    
  • 例子3:如果要统计一个字符串中每个字符出现的次数,可以使用defaultdict(int)

    sen='hello world'
    d=defaultdict(int)
    for key in sen:
         d[key]+=1
    print(d)
    defaultdict(<class 'int'>, {'o': 2, 'h': 1, 'w': 1, 'l': 3, ' ': 1, 'd': 1, 'e': 1, 'r': 1})
    
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 创作都市 设计师:CSDN官方博客 返回首页