2009-08-27 11 views
14

¿Qué es un código de una línea para establecer una cadena en python para la cadena, 0 si la cadena está vacía?Código de Python de una línea para establecer cadena en 0 cadena si está vacía

# line_parts[0] can be empty 
# if so, set a to the string, 0 
# one-liner solution should be part of the following line of code if possible 
a = line_parts[0] ... 
+0

@biznez No olvides que puedes aceptar una respuesta. –

+0

Yo diría: * debería * aceptar una respuesta. Es solo cortés, después de que la gente ha puesto esfuerzo en su nombre. –

+0

¿Quiere decir que la cadena está vacía (significa cuerda de longitud cero) o ** Ninguna **? –

Respuesta

59
a = line_parts[0] or "0" 

Ésta es una de las expresiones más bellas de Python, por lo que es fácil proporcionar valores por defecto. A menudo se usa así para valores predeterminados de funciones:

def fn(arg1, arg2=None): 
    arg2 = arg2 or ["weird default value"] 
+1

+1 Aprendí algo nuevo. –

+5

Para aclarar, si no estaba claro por la respuesta de Ned: cuando se trata de cadenas, una cadena vacía siempre evalúa como False, y una cadena no vacía siempre evalúa como True; por eso 'o' funciona perfectamente en esta situación . –

+6

Al usar esto, asegúrese de que nunca espere que 'arg2' sea 0 o '' .. –

11
a = '0' if not line_parts[0] else line_parts[0] 
+7

Sería más claro como: a = line_parts [0] if line_parts [0] else '0' – recursive

Cuestiones relacionadas