# 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.csdn.net/real_ray/article/details/17919289