2010-11-23 18 views
12

Comment puis-je faire quelque chose comme ce qui suit en Python? Fondamentalement, une compréhension de liste où vous exécutez une fonction si la variable existe.Python: liste de compréhension, faire f (x) si x existe?

Merci!

+0

Vous dites, si la variable existe, mais je pense que vous voulez dire, si ce n'est pas None. Le bit "for x in row" va parcourir toutes les "variables" de la rangée. –

+3

En outre, si vous voulez vérifier 'None', utilisez' x is not None'. – delnan

+1

Je pense que cette question très similaire à http://stackoverflow.com/questions/4260280/python-if-else-in-list-comprehension ne devrait pas re-poster la même question deux fois – anijhaw

Répondre

18

Le "si" va à la fin »

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

Parfait, merci. Comme @delnan les commentaires ci-dessus, ce dont j'ai vraiment besoin est 'x n'est pas None' - bien que ce soit ma faute pour une explication ambiguë. – AP257

3

si près.

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

Je ne sais pas sur les objectifs, mais cela devrait fonctionner

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

Peut-être vous » re pensaient à l'opérateur ternaire ternaire comme utilisé si vous voulez/sinon, par exemple:

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

ou tout ce que vous voulez faire.

Questions connexes