Right now my code prints how many times every word is used in the txt file. I'm trying to get it to ONLY print the top 3 words used with capital letters within the txt file...
file=open("novel.txt","r+")
wordcount={}
for word in file.read().split():
if word not in wordcount:
wordcount[word] = 1
else:
wordcount[word] += 1
for a,b in wordcount.items():
print (b, a)
First you want to limit your result to only capitalized words using str.istitle()
:
file=open("novel.txt","r+")
wordcount={}
for word in file.read().split():
if word.istitle():
if word not in wordcount:
wordcount[word] = 1
else:
wordcount[word] += 1
for a,b in wordcount.items():
print (b, a)
Then sort the results using sorted()
and print out the first three:
file=open("novel.txt","r+")
wordcount={}
for word in file.read().split():
if word.istitle():
if word not in wordcount:
wordcount[word] = 1
else:
wordcount[word] += 1
items = sorted(wordcount.items(), key=lambda tup: tup[1], reverse=True)
for item in items[:3]:
print item[0], item[1]
In Collections
there's a Counter
class. https://docs.python.org/2/library/collections.html .
cnt = Counter([w for w in file.read().split() if w.lower() != w]).most_common(3)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.