Python:将文件中的单词加载到集合中

时间:2009-05-17 06:33:55

标签: python text-files

我有一个包含数千个单词的简单文本文件,每个单词都在自己的行中,例如

aardvark
hello
piper

我使用以下代码将单词加载到一个集合中(我需要单词列表来测试成员资格,所以set是我选择的数据结构):

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

上面的代码生成一个包含以下条目的集合(每个单词后跟一个空格和换行符:

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

将文件加载到集合中除了空间之外最简单的方法是什么?\ n?

由于

6 个答案:

答案 0 :(得分:48)

string的strip()方法从两端删除空格。

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

答案 1 :(得分:12)

只需加载所有文件数据并将其拆分,每行会处理一个单词或每行用空格分隔多个单词,除非你的文件是GB,否则一次加载整个文件会更快

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

答案 2 :(得分:4)

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

答案 3 :(得分:1)

仅删除右侧空格。

set(map(str.rstrip, open('filename.txt')))

答案 4 :(得分:1)

with open("filename.txt") as f:
    mySet = map(str.rstrip, f)

如果要在Python 2.5中使用它,则需要

from __future__ import with_statement

答案 5 :(得分:1)

with open("filename.txt") as f:
    s = set([line.rstrip('\n') for line in f])