2010-11-23 7 views
12

¿Cómo puedo hacer algo como lo siguiente en Python?Python: liste comprensión, haga f (x) si x existe?

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

Básicamente, una lista de comprensión donde se lleva a cabo una función si la variable existe.

Gracias!

+0

Usted dice, si la variable existe, pero creo que quiere decir, si no es Ninguna. El bit "for x in row" recorrerá todas las "variables" en la fila. –

+3

Además, si desea verificar 'None', use' x is not None'. – delnan

+1

Creo que esta pregunta muy similar a http://stackoverflow.com/questions/4260280/python-if-else-in-list-comprehension no debería volver a publicar la misma pregunta dos veces – anijhaw

Respuesta

18

El "si" va al final"

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

Perfecto, gracias. Como @delnan comenta arriba, lo que realmente necesito es 'x no es ninguno', aunque es mi culpa por una explicación ambigua. – AP257

3

tan cerca.

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

No está seguro acerca de los objetivos, pero esto debería funcionar

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

Tal vez' Estamos pensando en la operador ternario sintaxis como se usa si quieres if/else, por ejemplo:

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

o lo que quieras hacer.

Cuestiones relacionadas