问题:
统计一篇文章中每个单词的词频:
思路:
-
去掉字符串中标点符号。
-
不含标点的字符串切片,生成List,存放单词列表
-
生成字典:key 为出现的单词,value为词频
代码:
import string #注意使用前要先将string模块导入
s='''Mr. and Mrs. Dursley, of number four, Privet Drive,
were proud to say that they were perfectly normal, thank you very much.
They were the last people you'd expect to be involved in anything strange or mysterious,
because they just didn't hold with such nonsense.''' #《哈利波特》节选
#删除字符串中标点#
for i in s:
if i in string.punctuation: #如果字符是标点符号的话就将其替换为空格
s = s.replace(i," ")
mlist = s.split() #生成单词列表,作为Dict中key列表
mdict = {} #空字典,key 为出现的单词,value为词频
for e in mlist:
if mdict.get(e,-1) == -1: #单词为首次出现
mdict[e] = 1
else:
mdict[e] += 1 #出现过
for key,value in mdict.items():
print(key,value)