2009-12-27 31 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)