如何从Python字符串中修剪空格?

1103 python string trim

如何从Python中的字符串中删除前导和尾随空格?

例如:

" Hello " --> "Hello"
" Hello"  --> "Hello"
"Hello "  --> "Hello"
"Bob has a cat" --> "Bob has a cat"
Run Code Online (Sandbox Code Playgroud)

Bri*_*ian 1664

只有一个空间,还是所有这样的空间?如果是第二个,那么字符串已经有了一个.strip()方法:

>>> ' Hello '.strip()
'Hello'
>>> ' Hello'.strip()
'Hello'
>>> 'Bob has a cat'.strip()
'Bob has a cat'
>>> '   Hello   '.strip()  # ALL consecutive spaces at both ends removed
'Hello'
Run Code Online (Sandbox Code Playgroud)

如果您只需要移除一个空格,则可以使用以下方法:

def strip_one_space(s):
    if s.endswith(" "): s = s[:-1]
    if s.startswith(" "): s = s[1:]
    return s

>>> strip_one_space("   Hello ")
'  Hello'
Run Code Online (Sandbox Code Playgroud)

另外,请注意str.strip()删除其他空格字符(例如制表符和换行符).要仅删除空格,可以指定要作为参数删除的字符strip,即:

>>> "  Hello\n".strip(" ")
'Hello\n'
Run Code Online (Sandbox Code Playgroud)

  • 如果你需要strip函数,例如map函数,你可以通过str.strip()访问它,就像map(str.strip,collection_of_s)一样 (18认同)
  • 有时我觉得python故意避免绝大多数语言使用的公认和有意义的名称,以便"独特"和"不同" - "strip"而不是`trim`,`isinstance`而不是`instanceof` ,`list`而不是`array`等等.为什么不只是使用每个人都熟悉的名字?吉兹:P (11认同)
  • @GershomMaes在`strip`的情况下,我完全同意,但列表与数组完全不同. (3认同)
  • @killthrush感谢您的参考,但我认为您的意思是`rstrip()`函数.:-) (2认同)

Mud*_*ain 255

正如上面的答案所指出的那样

myString.strip()
Run Code Online (Sandbox Code Playgroud)

将删除所有前导和尾随空白字符,例如\n,\ r,\ t,\ t,\ t\t,空格.

为了更灵活,请使用以下内容

  • 仅删除前导空格字符:myString.lstrip()
  • 仅删除尾随空格字符:myString.rstrip()
  • 删除特定的空格字符:myString.strip('\n')myString.lstrip('\n\r')myString.rstrip('\n\t')等等.

更多详细信息可在文档中找到

  • @StefanNch:角色的顺序根本不重要.\n\r也将删除\ r \n. (8认同)

Dre*_*kes 119

strip 不仅限于空格字符:

# remove all leading/trailing commas, periods and hyphens
title = title.strip(',.-')
Run Code Online (Sandbox Code Playgroud)


Den*_*gan 52

这将删除所有前导和尾随空格myString:

myString.strip()
Run Code Online (Sandbox Code Playgroud)

  • 公平地说,OP专门要求一种从字符串中删除前导和尾随空格的方法.足够好回答我 (8认同)
  • 这篇文章只有代码,它没有解释函数的作用.它是删除前导或尾随空格,还是两者都删除?它只删除空格或各种空格吗?你可以删除它只是空格,还是有其他功能去做?如果它同时删除了前导空格和尾随空格,你能否只删除其中一个空格,或者是否有(一个)其他功能来完成这项工作?`myString.strip()`没有回答我说过的任何一个问题. (3认同)

vez*_*ult 21

你想要strip():

myphrases = [ " Hello ", " Hello", "Hello ", "Bob has a cat" ]

for phrase in myphrases:
    print phrase.strip()
Run Code Online (Sandbox Code Playgroud)