2010-11-23 10 views
12

Pythonで次のようなことをするにはどうすればよいですか?Python:list comprehension、xが存在する場合はf(x)を実行しますか?

row = [unicode(x.strip()) if x for x in row] 

基本的に、変数が存在する場合に関数を実行するリストの理解。

ありがとうございます!

+0

変数が存在する場合は、だが、そうでない場合は、そうだと思います。 "for x in row"ビットは、行のすべての "変数"を処理します。 –

+3

また、 'None'をチェックしたい場合は' x is not'を使います。 – delnan

+1

私はこの質問をhttp://stackoverflow.com/questions/4260280/python-if-else-in-list-comprehensionと非常によく似ていると思いますが、同じ質問を2回再投稿しないでください – anijhaw

答えて

18

row = [unicode(x.strip()) for x in row if x] 
+0

パーフェクト、ありがとうございます。 @delnanが上記のコメントのように、私が本当に必要とするのは 'x is None'ではありません - それはあいまいな説明のための私のせいです。 – AP257

3

とても近い。

row = [unicode(x.strip()) for x in row if x] 
3

ない目標について確認してください「最後になりますが、これは「たぶん、あなたを

row = [unicode(x.strip()) for x in row if x ] 
0

を動作するはずの "if"あなたが/他の場合には、三項演算子の構文を使用して考えていました。例:

row = [unicode(x.strip()) if x is not None else '' for x in row ] 

または何でもしたいです。

関連する問題