2016-04-19 12 views
0

本質的に、私は巨大なファイルを持っており、すべてのファイルには行ごとに複数の単語があり、それぞれはスペースで区切られています。種類のこのような:、私は分割を使用してみましたが、それは、新しい行を考慮していませんでした私は一つの巨大なリストにファイル内のすべての単語を入れてやりたいファイルから単語を読んでリストに入れる

WORD WORD WORD WORD 
ANOTHER 
WORD SCRABBLE BLAH 
YES NO 

(\ n)が

答えて

0

via reading for line in f改行で分割して効率的です(一度に1行ずつ読み込みます)が、巨大なリストにすべてを入れるのは効率的ではありません。とにかく、あなたが主張する場合:

huge_list = [] 

with open(huge_file, "r") as f: 
    for line in f: 
     huge_list.extend(line.split()) 

、文字列としてメモリにファイル全体を読み込む代わりにf.read()を使用するには:

huge_list = [] 

with open(huge_file, "r") as f: 
    huge_list = f.read().split() 

入力ファイル(単語はスペースや改行で区切られた):

WORD WORD WORD WORD 
ANOTHER 
WORD SCRABBLE BLAH 
YES NO 

両方の例の出力:

>>> huge_list 
['WORD', 'WORD', 'WORD', 'WORD', 'ANOTHER', 'WORD', 'SCRABBLE', 'BLAH', 'YES', 'NO'] 
>>> 
+0

可能な限り各行ではなく、それ自体の要素である巨大なリストに各単語を入れたいと思います。たとえば、[単語、別の単語、単語など] – user2918356

+0

@ user2918356私は上手く理解できていない気がします。私が投稿した2つの例は、行を区切り、各単語を1次元の 'huge_list'に入れます。あなたはそれを実行しようとしましたか? – jDo

+0

@ user2918356 '['word'、 'another'、 'word'、 'etc']'はまさに出力のようです。 – jDo

関連する問題