Подтвердить что ты не робот

Python: загружать слова из файла в набор

У меня есть простой текстовый файл с несколькими тысячами слов, каждый в своей строке, например.

aardvark
hello
piper

Я использую следующий код для загрузки слов в набор (мне нужен список слов для проверки членства, поэтому установите структуру данных, которую я выбрал):

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

Вышеприведенный код создает набор со следующими записями (за каждым словом следует пробел и символ новой строки:

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

Какой самый простой способ загрузить файл в набор, но избавиться от пространства и \n?

Спасибо

4b9b3361

Ответ 1

Метод strip() строк удаляет пробелы с обоих концов.

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

Ответ 2

Просто загрузите все данные файла и разделите его, он позаботится о одном слове в строке или нескольких словах на строку, разделенных пробелами, также будет быстрее загружать весь файл сразу, если ваш файл не находится в GB

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

Ответ 3

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

Ответ 4

Чтобы удалить только правые пространства.

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

Ответ 5

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

Ответ 6

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

Если вы хотите использовать это в Python 2.5, вам нужно

from __future__ import with_statement