Ответ 1
Метод strip() строк удаляет пробелы с обоих концов.
set(line.strip() for line in open('filename.txt'))
У меня есть простой текстовый файл с несколькими тысячами слов, каждый в своей строке, например.
aardvark
hello
piper
Я использую следующий код для загрузки слов в набор (мне нужен список слов для проверки членства, поэтому установите структуру данных, которую я выбрал):
my_set = set(open('filename.txt'))
Вышеприведенный код создает набор со следующими записями (за каждым словом следует пробел и символ новой строки:
("aardvark \n", "hello \n", "piper \n")
Какой самый простой способ загрузить файл в набор, но избавиться от пространства и \n?
Спасибо
Метод strip() строк удаляет пробелы с обоих концов.
set(line.strip() for line in open('filename.txt'))
Просто загрузите все данные файла и разделите его, он позаботится о одном слове в строке или нескольких словах на строку, разделенных пробелами, также будет быстрее загружать весь файл сразу, если ваш файл не находится в GB
words = set(open('filename.txt').read().split())
my_set = set(map(str.strip, open('filename.txt')))
Чтобы удалить только правые пространства.
set(map(str.rstrip, open('filename.txt')))
with open("filename.txt") as f:
s = set([line.rstrip('\n') for line in f])
with open("filename.txt") as f:
mySet = map(str.rstrip, f)
Если вы хотите использовать это в Python 2.5, вам нужно
from __future__ import with_statement