2011-10-18 6 views
2

私はリスト内の空でない文字列だけを印刷しようとしています。私は下に動作するように見えることはできません、何が間違っているのですか?Python:空でない文字列を印刷する場合はインラインですか?

​​
+0

で、それは何をしますか?何をしたいのですか?もしitemがmylistに 'a = item 'をしたのであれば、' '' '' '' a''と何を期待しますか?それを明確にするために、その文に '()'をどのように追加しますか? –

答えて

7

次は、無効な構文です:print item in mylist if item is not ""

あなたは、おそらくあなたは、リストの内包表記を使用して欲しいものを達成できる:

>>> mylist = ["foo","bar","","baz"] 
>>> print [item for item in mylist if item] 
['foo', 'bar', 'baz'] 
+0

そして、python3では 'mylist item in item 'の' print(item)'も可能です。 – wim

2

あなたはそのリスト内の項目をつかむために発電機を作成することができます空ではありません。

nonempties = (item for item in mylist if item) 

ループして文字列に印刷または結合します。

print ' '.join(nonempties) 
1

filter()内蔵のはまさにそれに適しています、ただ機能の代わりにNoneを渡す:

>>> filter(None, ['Abc', '', 'def', None, 'ghi', False, 'jkl']) 
['Abc', 'def', 'ghi', 'jkl'] 

詳細をhttp://docs.python.org/library/functions.html

関連する問題