我有一个包含数千个单词的简单文本文件,每个单词都在自己的行中,例如
aardvark
hello
piper
我使用以下代码将单词加载到一个集合中(我需要单词列表来测试成员资格,所以set是我选择的数据结构):
my_set = set(open('filename.txt'))
上面的代码生成一个包含以下条目的集合(每个单词后跟一个空格和换行符:
("aardvark \n", "hello \n", "piper \n")
将文件加载到集合中除了空间之外最简单的方法是什么?\ n?
由于
答案 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])