Python字典的高级用法-统计计数
AI入门学习
共 2165字,需浏览 5分钟
·
2021-09-08 09:43
在很多计算任务中,需要统计不同信息出现的次数,最常见的就是统计某段文字中每个词或者每个字出现的次数,也就是常见的词频统计,这个时候,字典就派上了很大的用场,我们看看通过字典怎么进行统计。
我们用鲁迅先生的经典语录作为例子(略有改动),为了简化,就不分词了,自己分字,统计字数即可。分词后形成了一个列表
text = list('床上有两个枕头,一个是我的,另一个也是我的')
print(text)
['床', '上', '有', '两', '个', '枕', '头', ',', '一', '个', '是', '我',
'的', ',', '另', '一', '个', '也', '是', '我', '的']
方法一:
通过字典,直接进行统计
word_dic = {}
for word in text:
if word in word_dic:
word_dic[word] += 1
else:
word_dic[word] = 1
print(word_dic)
{'床': 1, '上': 1, '有': 1, '两': 1, '个': 3, '枕': 1, '头': 1, ',': 2,
'一': 2, '是': 2, '我': 2, '的': 2, '另': 1, '也': 1}
方法二:
上面的语句加了条件判断,显得稍微有点复杂,我们可以简化如下
word_dic = {}
for word in text:
word_dic[word] = word_dic.get(word,0)+1
print(word_dic)
{'床': 1, '上': 1, '有': 1, '两': 1, '个': 3, '枕': 1, '头': 1, ',': 2,
'一': 2, '是': 2, '我': 2, '的': 2, '另': 1, '也': 1}
方法三:
还可以用collections 模块的defaultdict进行统计,显得更加简洁,更加专业。
from collections import defaultdict
word_dic = defaultdict(int)
for word in text:
word_dic[word] += 1
print(word_dic)
defaultdict(<class 'int'>, {'床': 1, '上': 1, '有': 1, '两': 1, '个': 3, '枕': 1,
'头': 1, ',': 2, '一': 2, '是': 2, '我': 2, '的': 2, '另': 1, '也': 1})
Python字典详解-超级完整版
··· END ···
评论