2012-04-02 266 views
3

的名單我有一個字符串列表如下:添加尾隨空格爲字符串

my_list = ['Lorem ipsum dolor sit amet,', 'consectetur adipiscing elit. ', 'Mauris id enim nisi, ullamcorper malesuada magna.'] 

我想這些項目基本上合併成一個可讀的字符串。我的邏輯如下:

If the list item does not end with a space, add one 
otherwise, leave it alone 
Then combine them all into one string. 

我能用這幾種不同的方法完成這個。

使用列表理解:

message = ["%s " % x if not x.endswith(' ') else x for x in my_list] 
messageStr = ''.join(message) 

拼寫出來(我認爲這是一個有點更具可讀性):

​​3210

我的問題是,有更簡單的,「更理智」完成這個的方法?

+1

這是什麼不「理智」? – 2012-04-03 00:03:22

+0

那麼,它本身並不是瘋狂的,但我可以告訴我讓事情變得更加困難。幸運的是Nolen找到了一個好的解決方案。 – Nitzle 2012-04-03 00:16:21

回答

5
>>> my_list = ['Lorem ipsum dolor sit amet,', 'consectetur adipiscing elit. ', 'Mauris id en 
im nisi, ullamcorper malesuada magna.'] 
>>> ' '.join(string.strip() for string in my_list) 
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris id enim nisi, ullamcorper 
malesuada magna.' 
+0

謝謝!這樣做更有意義。一個問題,爲什麼使用rstrip()而不是strip()? – Nitzle 2012-04-03 00:07:12

+0

我最初使用strip,但是你曾經說過你處理的是在結果中「結束」的字符串,所以我想我們只需要去掉右側的空格/我不想刪除左側的空格很重要。如果我錯了,我會很樂意將它改爲剝離。 – 2012-04-03 00:08:52

+0

在我的腳本中,我從數據庫中獲取這些字符串(每行都有一部分消息)。從我目前看到的數據來看,各種各樣的雜亂無章。我認爲我會安全並使用strip(),因爲連接應該注意strip()之後的句子。 – Nitzle 2012-04-03 00:13:35

1

你可以簡單地在列表中理解有點用strip

' '.join([x.strip() for x in list]) 

這也是最好不要打電話給你的榜「榜首」,因爲這是一個內置。

+0

好主意,我在原始問題中更改了變量名稱。謝謝。 – Nitzle 2012-04-03 00:21:52