web-dev-qa-db-ja.com

Python:ファイルからセットに単語を読み込む

私は数千の単語を含むシンプルなテキストファイルを持っています。

aardvark
hello
piper

次のコードを使用して、単語をセットに読み込みます(メンバーシップをテストするには単語のリストが必要なので、セットは選択したデータ構造です)。

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

上記のコードは、次のエントリを持つセットを生成します(各Wordの後にスペースと改行文字が続きます:

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

ファイルをセットにロードする最も簡単な方法は何ですか?ただしスペースと\ nを削除しますか?

ありがとう

28
Roee Adler

文字列のstrip()メソッドは、両端から空白を削除します。

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

すべてのファイルデータをロードして分割するだけで、1行あたり1ワードまたはスペースで区切られた1行あたりの複数のワードが処理されます。また、ファイルがGBでない限り、一度にファイル全体をロードする方が高速です。

words =  set(open('filename.txt').read().split())
12
Anurag Uniyal
my_set = set(map(str.strip, open('filename.txt')))
4
RichieHindle

右側のスペースのみを削除します。

set(map(str.rstrip, open('filename.txt')))
1
Unknown
with open("filename.txt") as f:
    s = set([line.rstrip('\n') for line in f])
1
mtasic85
with open("filename.txt") as f:
    mySet = map(str.rstrip, f)

これをPython 2.5で使用したい場合は、

from __future__ import with_statement
1
Matt G