2009-12-27 32 views
1

如何切斷最後一個空格?切斷空格

解經由 list comprehension
a = ['Hello ','everybody ','! '] 
for i in range(len(a)): 
    a[i,-1]='' 

print a 
+0

此版本不起作用 – kame

+0

請注意,您的問題不明確。你真的只想要「最後的」空白空間嗎?這意味着只能刪除一個,即使有兩個。或者你想要刪除所有尾隨空格嗎? –

+0

只有最後一個位置!謝謝彼得 – kame

回答

5

>>> a = ['Hello ','everybody ','! '] 
>>> [ e.strip() for e in a ] 
['Hello', 'everybody', '!'] 

文檔:string.strip/string.rstripstring.lstrip分別

+1

'strip()'從字符串的兩端刪除空格,僅刪除尾部空格應該使用'rstrip()'(請參閱我的答案)。 – sastanin

10

要切斷只有最後(右)空格,使用rstrip()方法。

>>> s = " abc " 
>>> s.rstrip() 
' abc' 
>>> s.strip() 
'abc' 

在您的例子:strip()從兩端刪除空格

>>> [s.rstrip() for s in ['Hello ','everybody ','! '] ] 
['Hello', 'everybody', '!'] 
+0

+1 * * * strip() – Kimvais

1

名單辦法理解上面提到的將是Python的方式來解決這個問題,但他們不會改變列表本身(即a)。如果你想改變這些,你必須遍歷因爲你已經在列表上進行,而不是你的作業做一個

a[i] = a[i].rstrip() # For stripping off trailing whitespaces only. 

這是當然的,壞的風格,我會建議以列表解析方法。

0
>>> a = ['Hello ','everybody ','! '] 
>>> map(str.rstrip,a) 
['Hello', 'everybody', '!'] 
>>> b = map(str.rstrip,a)