2009-08-27 3 views
14

Co to jest kod jednolinijkowy do ustawiania łańcucha znaków w pythonie dla łańcucha znaków, 0, jeśli łańcuch znaków jest pusty?Jednorzędowy kod w języku Python do ustawiania ciągu znaków na 0, jeśli pusty.

# 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 Nie zapomnij, że możesz przyjąć odpowiedź. –

+0

Powiedziałbym: * powinien * zaakceptować odpowiedź. Jest uprzejmy, gdy ludzie włożyli w ciebie wysiłek. –

+0

Czy masz na myśli łańcuch jest pusty (oznacza ciąg o długości zero) lub ** Brak **? –

Odpowiedz

59
a = line_parts[0] or "0" 

Jest to jeden z najmilszych idiomów Python, dzięki czemu można łatwo podać wartości domyślne. Jest często używany w ten sposób do domyślnych wartości funkcji:

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

+1 Nauczyłem się czegoś nowego. –

+5

Aby wyjaśnić, jeśli nie było to jasne z odpowiedzi Neda: jeśli chodzi o ciągi, pusty ciąg zawsze ma wartość Fałsz, a niepusty ciąg zawsze jest równy Prawdziwemu - dlatego 'lub' działa idealnie w tej sytuacji . –

+6

Używając tego, upewnij się, że nigdy nie oczekujesz, że "arg2" będzie 0 lub ".. –

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

Byłoby bardziej jasne, jak: a = line_parts [0] if line_parts [0] else '0' – recursive

Powiązane problemy