defaultdict(list) (第二部分)

# strings = ('puppy', 'kitten', 'puppy', 'puppy', 'weasel', 'puppy', 'kitten', 'puppy')  #新建一个元组
# counts = {}  #新建一个字典

## 统计strings中某个单词出现的次数,并在counts字典中作记录。单词每出现一次,在counts相对应的键所存的值数字加1。
# 方法一:×
# for k in strings:
#     counts[k] += 1  #会报错,因为Python的dict中不存在默认值的说法。

# 方法二:使用判断语句检查√
# for kw in strings:
#     if kw not in counts:  #将元组strings中出现的单词第一次在counts中进行查找,如果没有则将其在字典counts中统计为1.
#         counts[kw] = 1
#     else:
#         counts[kw] += 1  #如果有则将其在字典counts中出现的次数+1.
# print(counts)

# 方法三:使用dict.setdefault()设置默认值√
# for kw in strings:
#     counts.setdefault(kw, 0)  #,第一个参数是键的名称,第二个参数是默认值。
#     counts[kw] += 1
# print(counts)

#方法四:使用collections.defaultdict类(一种字典它本身提供了默认值的功能)
from collections import defaultdict
strings = ('puppy', 'kitten', 'puppy', 'puppy', 'weasel', 'puppy', 'kitten', 'puppy')
counts = defaultdict(lambda: 0)  # 使用lambda来定义简单的函数
for s in strings:
    counts[s] += 1

print(counts)


参考博客:https://blog.youkuaiyun.com/real_ray/article/details/17919289
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值