我有四個字符串,其中任何一個都可以爲空。我需要將它們連接成一個空格之間的字符串。如果我使用:加入多個字符串(如果它們在Python中不爲空)
new_string = string1 + ' ' + string2 + ' ' + string3 + ' ' + string4
結果是在新的字符串的開頭一個空格,如果string1
是空的。另外,如果string2
和string3
爲空,我有三個空格。
當我不需要它們時,我怎樣才能輕鬆地加入它們而不留空白空間?
我有四個字符串,其中任何一個都可以爲空。我需要將它們連接成一個空格之間的字符串。如果我使用:加入多個字符串(如果它們在Python中不爲空)
new_string = string1 + ' ' + string2 + ' ' + string3 + ' ' + string4
結果是在新的字符串的開頭一個空格,如果string1
是空的。另外,如果string2
和string3
爲空,我有三個空格。
當我不需要它們時,我怎樣才能輕鬆地加入它們而不留空白空間?
>>> strings = ['foo','','bar','moo']
>>> ' '.join(filter(None, strings))
'foo bar moo'
通過在filter()
通話使用None
,它會刪除所有falsy元素。
strings = ['foo','','bar','moo']
' '.join([x for x in strings if x is not ''])
'foo bar moo'
如果你知道這些字符串沒有前導/尾隨空白:
>>> strings = ['foo','','bar','moo']
>>> ' '.join(x for x in strings if x)
'foo bar moo'
否則:
>>> strings = ['foo ','',' bar', ' ', 'moo']
>>> ' '.join(x.strip() for x in strings if x.strip())
'foo bar moo'
,如果任何字符串具有非領導/尾隨空白,你可能還需要更加努力地工作。請說明你實際擁有的是什麼。
字符串來自輸入文本字段,所以一切都是可能的。謝謝! – Goran 2011-12-24 21:50:46
更好地使用'!='而不是'不是'。它可能有效,但不能保證。或者使用'[x for x in string if if]]。 – 2011-12-24 20:48:35
**如果你實際上不想檢查兩個是否是同一個對象,那麼永遠不要**對於非單身人士來說不是'! – ThiefMaster 2011-12-24 21:38:45