2009-08-27 33 views
14

Mã một lót để đặt chuỗi trong python thành chuỗi là 0, nếu chuỗi rỗng?Mã một lớp Python để đặt chuỗi thành 0 chuỗi nếu trống

# 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 Đừng quên bạn có thể chấp nhận câu trả lời. –

+0

Tôi muốn nói: * nên * chấp nhận câu trả lời. Nó chỉ là lịch sự, sau khi mọi người đã nỗ lực thay cho bạn. –

+0

Bạn có nghĩa là chuỗi rỗng (có nghĩa là chuỗi có độ dài bằng không) hoặc ** Không **? –

Trả lời

59
a = line_parts[0] or "0" 

Đây là một trong những thành ngữ Python đẹp nhất, làm cho nó dễ dàng để cung cấp các giá trị mặc định. Nó thường được sử dụng như thế này cho các giá trị mặc định của hàm:

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

+1 Tôi đã học được điều gì đó mới mẻ. –

+5

Để làm rõ, nếu nó không rõ ràng từ câu trả lời của Ned: khi nói đến chuỗi, chuỗi trống luôn luôn đánh giá là Sai và chuỗi không trống luôn luôn đánh giá là True - đó là lý do 'hoặc' hoạt động hoàn hảo trong tình huống này . –

+6

Khi sử dụng, đảm bảo rằng bạn không bao giờ mong đợi 'arg2' là 0 hoặc '' .. –

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

Sẽ rõ ràng hơn là: a = line_parts [0] nếu line_parts [0] else '0' – recursive

Các vấn đề liên quan