Python:从文件加载单词到集合

37 投票
6 回答
68803 浏览
提问于 2025-04-15 11:38

我有一个简单的文本文件,里面有几千个单词,每个单词都在自己的一行,比如:

aardvark
hello
piper

我用下面的代码把这些单词加载到一个集合里(我需要这个单词列表来测试某个单词是否在里面,所以我选择了集合这种数据结构):

my_set = set(open('filename.txt'))

上面的代码会生成一个集合,里面的内容是这样的(每个单词后面都有一个空格和换行符):

("aardvark \n", "hello \n", "piper \n")

有没有简单的方法可以把文件加载到集合里,同时去掉空格和换行符呢?

谢谢

6 个回答

4

在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。这些问题可能会让我们感到困惑,不知道该如何解决。比如,有人可能在使用特定的代码时,发现它没有按照预期的方式工作。这时候,我们就需要去查找原因,看看是不是哪里出了问题。

通常,解决这些问题的第一步是仔细检查代码,看看有没有拼写错误或者逻辑上的问题。有时候,错误可能是因为我们没有正确理解某个函数的用法,或者没有按照要求传递参数。

另外,查看相关的文档也是一个好主意。文档通常会提供关于如何使用某个工具或库的详细信息,帮助我们更好地理解它的功能和限制。

如果自己解决不了,还可以去一些编程社区,比如StackOverflow,寻求帮助。在那里,很多有经验的程序员会分享他们的经验和解决方案,帮助我们更快地找到问题的根源。

总之,遇到问题时不要慌张,耐心分析,查阅资料,必要时寻求他人的帮助,这样就能逐步找到解决办法。

my_set = set(map(str.strip, open('filename.txt')))
16

只需要把整个文件的数据加载进来,然后把它分开就行了。这样可以处理每行一个单词或者每行有多个单词,用空格分开的情况。而且一次性加载整个文件会更快,除非你的文件有好几个GB那么大。

words =  set(open('filename.txt').read().split())
78

字符串的strip()方法可以去掉字符串两端的空白字符。

set(line.strip() for line in open('filename.txt'))

撰写回答