打印10个最常见的单词

时间:2017-12-02 21:46:50

标签: python dictionary


程序正在尝试打印文件中最常见的10个单词。但是我无法打印10个最常用的单词






  from string import *
 file = open( 'shakespeare.txt')。read()。lower()。split()

 number_of_words = 0

 onlyOneWord = []

 for i在文件中:
如果我只在OneWneWord:继续
 else:onlyOneWord.append(i)
 lot_of_words = {}


 for onlyOneWord中的all_Words:
 all_Words = all_Words.strip(标点符号)
 number_of_words = 0
对于文件中的orignal_file:
 orignal_file = orignal_file.strip(标点符号)
如果all_Words == orignal_file:
 number_of_words + = 1
 lot_of_words [all_Words] = number_of_words

对于x,y in sorted(lot_of_words.items()):
 print(max(y))
  






现在它将打印完整文件中的内容< / p>&#xA;&#xA;&#xA;&#xA;

我需要它来打印这样的10个最常见的单词并让它运行得更快

&#xA;& #xA;

:251&#xA; apple:234&#xA;等。

&#xA;

1 个答案:

答案 0 :(得分:4)

您可以使用collections.Counter.most_common轻松完成此操作。我还使用str.translate删除标点符号。

from collections import Counter
from string import punctuation

strip_punc = str.maketrans('', '', punctuation)

with open('shakespeare.txt') as f:
    wordCount = Counter(f.read().lower().translate(strip_punc).split())

print(wordCount.most_common(10))

将打印元组列表

[('the', 251), ('apple', 100), ...]

编辑: 我们可以通过使用我们用来删除标点符号的translate调用更改字母的大小来加快速度。

from string import punctuation, ascii_uppercase, ascii_lowercase

strip_punc = str.maketrans(ascii_lowercase, ascii_uppercase, punctuation)