python defaultdict函数小总结

1、和dict相比,增加了键的默认值

nums=[3,2,1,1,4]
dnum=dict()
for i in nums:
    if i in dnum:dnum[i]+=1
    else:dnum[i]=1
print(dnum)
输出:{3: 1, 2: 1, 1: 2, 4: 1}

fnum=defaultdict(int)
for i in nums:fnum[i]+=1  # 不存在的元素+不会报错
print(fnum)  # 优化了dict的计数统计
输出:defaultdict(<class 'int'>, {3: 1, 2: 1, 1: 2, 4: 1})

2、添加默认列表元素

tum=[("A", "1"), ("B", "1"), ("A", "2"), ("B", "2"), ("A", "3"), ("B", "3")]
dtum=dict()
for i,j in tum:
    if i in dtum:dtum[i]+=[j]
    else:dtum[i]=[j]
print(dtum)
输出:{'A': ['1', '2', '3'], 'B': ['1', '2', '3']}

ftum=defaultdict(list)
for i,j in tum:
    ftum[i].append(j)
print(ftum)
输出:defaultdict(<class 'list'>, {'A': ['1', '2', '3'], 'B': ['1', '2', '3']})

3、接受一个工厂函数作为默认参数

lm=defaultdict(lambda:[1,2,3,4])
lm["存在"]=["value"]
print(lm["存在"])
输出:['value']
print(lm["不存在"])
输出:[1, 2, 3, 4]
print(lm)
输出:defaultdict(<function <lambda> at 0x000001D073861DC8>, {'存在': ['value'], '不存在': [1, 2, 3, 4]})

关于defaultdict,应该大概就是这些了,掰了个白~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值