python 哈姆雷特 字数统计 词云

def getText():  #赋予txt哈姆雷特小说-全英文小写-全符号变空格-返回txt
        txt = open('hamlet.txt','r').read()#注意文本的路径
        txt = txt.lower()#文本字符全部转变为小写字母
        for ch in '!"#$%&()*+,-./:;<=>?@[\\]^_`{|}~':
            txt = txt.replace(ch," ") #使用空格字符替换掉文本中所有特殊字符
        return txt
hamletTxt = getText() #调用函数
words = hamletTxt.split()#以空字符做列表返回
counts = {}#创建一个空字典
for word in words:
    counts[word] = counts.get(word,0) + 1#get不到word就创建word为下标的值0+1,如果get到了就在word的值上加1,然后更新字典
items = list(counts.items())#字典的键值对变成列表
items.sort(key=lambda x:x[1],reverse=True)#以出现次数为标准排列,从大到小
for i in range(10):
    word,count = items[i]
    print('{0:<10},{1:>5}'.format(word,count))

  

posted @ 2018-07-03 20:56  星空纪  阅读(1385)  评论(0编辑  收藏  举报