2014-04-03 43 views
0

我有輸入s1,s2,s3。我只有在它們真的存在時才需要連接它們。如何在python中檢查多個空字符串

我所做的:

s1 = s1.strip() 
s2 = s2.strip() 
s3 = s3.strip() 
if s1 and s2 and s3: 
    input = s1 + ' ' + s2 + ' ' + s3 
if s1 and s2: 
    input = s1 + ' ' + s2 
if s1 and s3: 
    input = s1 + ' ' + s3 
if s2 and s3: 
    input = s2 + ' ' + s3 
.... 
... 

例如我不想要test (white space)。如果其餘2個輸入爲空,我想要test

我該如何以更高效和優雅的方式做到這一點?

回答

5

您可以使用join()加入非空字符串(一行):

>>> s1 = 'test' 
>>> s2 = '' 
>>> s3 = '' 
>>> ' '.join(s for s in (s1,s2,s3) if s) 
'test' 
+3

+1。雖然它更快,如果你使用[join]作爲[根據這個問題]列表理解(http://stackoverflow.com/questions/9060653/list-comprehension-without-python) – Ffisegydd