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})
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值