Python统计单词个数
Python统计单词个数我会实现我的问题是我输入hello and boy girl 这些单词不被统计怎么写没什么思路 先分割,再遍历,遍历时创建单词为key的字典,value为统计个数 问题没说清楚,是说输入这些单词应该被统计而你的代码跑出来没被统计,还是说你要实现这些单词不被统计? def getText():
txt = open("1.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 = counts.get(word,0) + 1
items = list(counts.items())
items.sort(key=lambda x:x, reverse=True)
for i in range(10):
word, count = items
print ("{0:<10}{1:>5}".format(word, count))
str_1='hello and boy girl'
str_1_list=str_1.split(' ')#以空格分隔
print(len(str_1_list)) 我在python电子书上看到过类似的,统计汉姆雷特里的单词 本帖最后由 kesai 于 2019-12-18 18:11 编辑
# @Description : 词频统计
def getText():
txt = open('hamlet.txt', 'r').read()
txt = txt.lower()
for ch in '!"#$%&()*+,-./:;<=>?@[\\]^_‘{|}~':
txt = txt.replace(ch, " ")# 将文本中特殊字符替换为空格
return txt
def taleSecond(item):
return item
txt = getText()
words = txt.split()
counts = dict()
for word in words:
counts = counts.get(word, 0)+1
print(counts)
items = list(counts.items())
#items.sort(key=taleSecond,reverse=True)
items.sort(key=lambda x: x, reverse=True)
for i in range(0, 10):
word, count = items# 数组赋值,我擦
print('{0:<10}{1:>5}'.format(word,count)) MUTED 发表于 2019-12-18 17:47
问题没说清楚,是说输入这些单词应该被统计而你的代码跑出来没被统计,还是说你要实现这些单词不被统计?
是我输入这些单词不要被统计! 不是我没跑出了
而是我不要统计这些单词 看来楼上的大大都解决了 把不要统计的单词从统计结果里排除不就行啦