s.strip()究竟做了什么?

时间:2012-12-09 01:52:54

标签: python

有人告诉我删除了空格但是

s = "ss asdas vsadsafas asfasasgas"

print(s.strip())

打印出来

ss asdas vsadsafas asfasasgas

不应该是ssasdasvsadsafasasfasasgas

5 个答案:

答案 0 :(得分:12)

您应该查看该功能的文档。它修剪了前导和尾随空格。 " ss ss ".strip()变为"ss ss"

相关链接:http://docs.python.org/2/library/stdtypes.html#str.strip

此外,Python交互式解释器中有一个非常强大的工具 - 您可以执行help("".strip)之类的操作来获取大量有用的信息。

答案 1 :(得分:2)

Python's reference的定义:

str.strip([chars])

返回删除了前导和尾随字符的字符串副本。 chars参数是一个字符串,指定要删除的字符集。如果省略或None,则chars参数默认为删除空格。 chars参数不是前缀或后缀;相反,它的所有值组合都被剥离了:

答案 2 :(得分:2)

正如其他人所说,strip()仅删除前导空格和尾随空格。

您正在寻找s.replace(" ","")

答案 3 :(得分:0)

除了删除前导和尾随空格外,它还会删除传递参数。

如下所示: string =' shiv非常棒'

打印(string.strip(' SH'))

这将打印" iv很棒"

但剥离这样的角色会变得非常混乱,因为它会导致各种结果,如下面的例子。

  

s = " paandroid是awesomean papapa"

     

执行 s.strip(' p')将执行

     

如果你给s = " paapandroid是非常棒的爸爸"

     

s.strip(' pa')这里,它给了' ndroid是非常好的' ,最后有一个空格。这意味着它以递归方式删除任何此类 pa ,其中包含字符串后缀和前缀的一个或多个每个字符。   通过对&#34进行剥离来查看更多结果; paapandroid是非常棒的爸爸"

答案 4 :(得分:0)

我们知道

s.strip() 函数返回一个字符串,该字符串中删除了前导和后继空格或将其分隔开

但是如果我们使用带参数的strip()函数,例如- s="your string goes here" s.strip("string") 现在,由于我们已将参数传递为“字符串”,因此将其视为 一组字符 {s,t,r,i,n,g} 现在类似:s.strip()去除前导和尾随空格 s.strip(“ string”)将在字符串s的左侧和右侧一一搜索该集合的所有字符。

如果字符串 s 中的字符不在集合中,则从该侧开始不进行进一步检查,将从另一侧继续搜索,直到从该侧开始发生类似的事情为止。如果在set中找到了字符串s中的char,则该char被删除了,例如-

考虑字符串: s =“这很棘手”

s.strip(“ ric”) 现在为此,我们的集合将是{“ r”,“ i”,“ c”}。

现在从字符串s的左侧开始检查第一个字符是“ t”,因为“ t”不在我们的集合中,所以我们在这里停止。

现在从字符串s的右侧检查,第一个字符为“ y”,因为“ y”不在我们的集合中,因此我们在此处停止 **输出:“这很棘手”

s.strip(“ ingy”) set = {“ i”,“ n”,“ g”,“ y”} 仅在右侧情况下找到y并在找不到g之后将其删除,因此我们在这里停止 **输出:“这是把戏”

s.strip(“ the”) set = {“ t”,“ h”,“ e”} 因为右侧“ y”不在我们的设置中,所以我们停止了, 对于我们的集合中出现的左侧“ t”,我们将其删除,检查“ h”-目前-因此删除“ h”,而不是“ i”不存在

输出:“是把戏”