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

猜你喜欢

转载自blog.csdn.net/william_hehe/article/details/80431815