检查我的程序中的错误

时间:2016-10-04 03:29:10

标签: input counter

我正在尝试对python中的字典计数器进行一些更改。我想对我当前的计数器进行一些更改,但到目前为止还没有取得任何进展。我希望我的代码显示不同单词的数量。

这是我到目前为止所做的:

# import sys module in order to access command line arguments later
import sys


# create an empty dictionary
dicWordCount = {}

# read all words from the file and put them into 
#'dicWordCount' one by one,
# then count the occurance of each word

4 个答案:

答案 0 :(得分:1)

您可以使用集合lib中的Count函数:

from collections import Counter
q = Counter(fileSource.read().split())
total = sum(q.values())

答案 1 :(得分:0)

对于您的第一个qs,您可以使用set来帮助您计算不同字词的数量。 (假设每两个单词之间有一个空格)

str = 'apple boy cat dog elephant fox'
different_word_count = len(set(str.split(' '))) 

对于你的第二个qs,使用字典来帮助你记录word_count是好的。

答案 2 :(得分:0)

首先,你的第一个问题,为单词计数添加一个变量,为不同的单词添加一个变量。所以wordCount = 0differentWords = 0。在文件阅读的循环中,将wordCount += 1放在顶部,并在第一个if语句中放置differentWords += 1。您也可以在程序结束时打印这些变量。

第二个问题,在您的打印中,添加if语句if len(strKey)>4:

如果你想要一个完整的示例代码,那就是。

import sys

fileSource = open(sys.argv[1], "rt")
dicWordCount = {}
wordCount = 0
differentWords = 0

for strWord in fileSource.read().split():
  wordCount += 1
  if strWord not in dicWordCount:
    dicWordCount[strWord] = 1
    differentWords += 1
  else:
    dicWordCount[strWord] += 1

for strKey in sorted(dicWordCount, key=dicWordCount.get, reverse=True):
  if len(strKey) > 4: # if the words length is greater than four.
    print(strKey, dicWordCount[strKey])
print("Total words: %s\nDifferent Words: %s" % (wordCount, differentWords))

答案 3 :(得分:0)

这个怎么样?

#gives unique words count
unique_words = len(dicWordCount)


total_words = 0
for k, v in dicWordCount.items():
    total_words += v

#gives total word count
print(total_words)

您不需要单独的变量来计算字数,因为您正在使用字典,并且要计算总字数,您只需要添加键的值(这只是计数)< / p>