Python 计算文本文件中唯一字总数的函数

Python 计算文本文件中唯一字总数的函数,python,text-files,Python,Text Files,我使用的是Python3,我正在尝试编写一个函数来计算文本文件中唯一单词的总数。我在下面写了一些代码,但当我运行它时,由于某种原因,我只得到26个唯一的单词,而实际上应该至少有200个。有人能发现我的代码有问题吗 def countUniqueWords(): words = open('phrases.txt') numberofUniqueWords = {} for word in words: try: numberof

我使用的是Python3,我正在尝试编写一个函数来计算文本文件中唯一单词的总数。我在下面写了一些代码,但当我运行它时,由于某种原因,我只得到26个唯一的单词,而实际上应该至少有200个。有人能发现我的代码有问题吗

def countUniqueWords():
    words = open('phrases.txt')
    numberofUniqueWords = {}
    for word in words:
         try:
             numberofUniqueWords[word] += 1
         except KeyError:
             numberofUniqueWords[word] = 1
    print(len(numberofUniqueWords))

print(countUniqueWords())

您正在迭代文件中的章程,而不是单词。您需要使文件成为一个单词列表,其中包含
words=open('phrases.txt')。read().split()
。您还应该确保删除任何标点符号。

1)使用集合而不是字典 2)
words
只是一个字符串,您需要使用
.split()
来获取字符串中的单词

def countUniqueWords():
    words = open('phrases.txt')
    uniqueWords = set(words.split())
    return len(uniqueWords)

print(countUniqueWords())

看看你正在数的“单词”,你会发现它们是单个字母。每个
单词都是文本文件中的一行。你应该先拆分它
words.split()
。我想提两件事:1。您没有关闭您的文件。使用
.close()
或带有
关键字的
。2.使用
print(countUniqueWords())
,您正在打印
countUniqueWords
的返回值,但是
countUniqueWords
此时不返回任何内容。您好!我尝试使用您的代码,但我一直收到错误“Python:AttributeError:”\u io.TextIOWrapper对象没有属性“split”'Nvm,明白了!非常感谢:)