我是Python的新手,所以我正在做一些挑战,其中之一是查找文本文件中唯一词的数量。文本文件中包含212个唯一的单词,但是使用代码我只显示0。谢谢您的帮助。
words=[]
count=0
with open ("text.txt","r") as file:
for line in file:
if line in words:
words.append(line)
k+=1
else:
pass
print(k)
答案 0 :(得分:1)
由于未声明k
,因此代码段中似乎有错误。我假设您正在尝试count
个唯一单词的数量。
此外,还有更好的方法可以通过将列表转换为集合来在列表中查找唯一值。集合中的值将不包含重复的值。
查看下面的代码段。
words = []
count = 0
with open ("text.txt","r") as f:
# Get a list of lines in the file and covert it into a set
words = set(f.readlines())
count = len(words)
print(count)
答案 1 :(得分:0)
如果行中没有该行,请更改为该行;如果列表中还没有该行,则要添加该单词;如果该行已经存在,则将其忽略
答案 2 :(得分:0)
您的示例代码片段中有很多错误:
dict
或set
比list
的性能更高else
条件不是必需的这是解决这些问题并使用一些简洁语言功能的简单实现:
with open("test.txt", "r") as file:
lines = file.read().splitlines()
uniques = set()
for line in lines:
uniques |= set(line.split())
print(f"Unique words: {len(uniques)}")
此示例使用sets和f字符串,后者仅在Python 3.6+中可用。但是请注意,我们正在将整个文件内容“混入”一个变量,如果文件很大,这可能会很糟糕。我假设您的示例文件很小。
此外,此示例不处理标点符号之类的情况。因此,“测试”将被算作与“测试”不同的词。 (带句号)。修正留给读者练习。