私は数千の単語を含むシンプルなテキストファイルを持っています。
aardvark
hello
piper
次のコードを使用して、単語をセットに読み込みます(メンバーシップをテストするには単語のリストが必要なので、セットは選択したデータ構造です)。
my_set = set(open('filename.txt'))
上記のコードは、次のエントリを持つセットを生成します(各Wordの後にスペースと改行文字が続きます:
("aardvark \n", "hello \n", "piper \n")
ファイルをセットにロードする最も簡単な方法は何ですか?ただしスペースと\ nを削除しますか?
ありがとう
文字列のstrip()メソッドは、両端から空白を削除します。
set(line.strip() for line in open('filename.txt'))
すべてのファイルデータをロードして分割するだけで、1行あたり1ワードまたはスペースで区切られた1行あたりの複数のワードが処理されます。また、ファイルが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