2013-11-09 26 views
6
with open("text.txt", 'r') as file: 
    for line in file: 
     line = line.rstrip('\n' + '').split(':') 
     print(line) 

生成されている一連の配列の空リストを削除しようとしています。私はすべての行にtext.txtの配列を作りたいので、私は正確に各ラインの、個々の要素にアクセスする能力を持っているでしょう。Pythonの配列から空の要素を削除する

空のリストは['']として自分自身を表示 - あなたは四行目で見ることができるよう、私は明示的にそれらを取り除くことを試みてきました。空の要素は、一度新しい改行文字で埋められましたが、これは.rstrip('\n')を使用して正常に削除されました。

編集:私はいくつかの専門用語で誤解があった

、上記が更新されるようになりました。本質的に、私は空のリストを取り除きたい。

+0

技術 '[ '']'空のリストではありません。これは、空の文字列が1つ入ったリストです。ゲームの答えに対するあなたのコメントは、何とかあなたのリストから空の値を捕らえたいと示唆していますか?私は最も重要な質問は何だと思いますか?簡単に数えるより良い方法があります。 –

答えて

14

私はあなたの正確なラインを見ることができないので、あなたは完全にあなたの要件に合致するソリューションを与えるためにその難しいが、あなたは空の文字列ではありませんリスト内のすべての要素を取得したい場合、あなたはこれを行うことができます:

>>> l = ["ch", '', '', 'e', '', 'e', 'se'] 
>>> [var for var in l if var] 
Out[4]: ['ch', 'e', 'e', 'se'] 

またNoneboolfilterを使用することがあります。

>>> filter(None, l) 
Out[5]: ['ch', 'e', 'e', 'se'] 
>>> filter(bool, l) 
Out[6]: ['ch', 'e', 'e', 'se'] 

あなたは空の文字列とリストを取り除くしたい場合は、あなたの具体的な例のためにあなたがこれを行うことができます:

with open("text.txt", 'r') as file: 
    for line in file: 
     line = line.rstrip('\n' + '').split(':') 
     # If line is just empty 
     if line != ['']: 
      print line 
+0

どのような正確な線を見たいですか?出力の1つの例?もしそうなら... – adampski

+0

[ '123'、 '123'、 '1039'、 '123'、 '123'、 '123'、 '123'] [ ''] – adampski

+0

user2296349 @ない正確に一つのリスト厥、今それは...ですか? –

関連する問題