5

有人告诉我它会删除空格,但是

s = "ss asdas vsadsafas asfasasgas"

print(s.strip())

打印出来

ss asdas vsadsafas asfasasgas

不应该ssasdasvsadsafasasfasasgas吗?

4

5 回答 5

13

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

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

此外,Python 交互式解释器中有一个非常强大的工具——你可以做一些事情,比如help("".strip)获取大量有用的信息。

于 2012-12-09T01:54:05.267 回答
3

来自Python 参考的定义:

str.strip([chars])

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

于 2012-12-09T01:55:54.663 回答
3

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

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

于 2012-12-09T01:57:05.583 回答
2

据我们所知

s.strip()

函数返回一个字符串,其中前导和尾随空格被删除或条纹

但是如果我们使用带参数的 strip() 函数,例如-

 s="your string goes here"
s.strip("string")

现在我们将参数作为“字符串”传递,这将被视为一组 char {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”-present-so 删除“h”,而不是“i”不存在停在这里

输出:“很棘手”

于 2018-06-19T13:13:18.450 回答
1

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

像下面这样: string = 'shiv is awesome'

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

这将打印“iv is awesome”

但是像这样剥离字符会变得非常混乱,因为它会导致各种结果,如下例所示。

s = "paandroid 是真棒爸爸"

s.strip('p')什么都不做

如果你给 s = "paapandroid is awesomean papa"

在这里做s.strip('pa')它给了' android is awesomean'最后一个空格。这意味着它递归地删除在字符串的后缀和前缀上包含一个或多个每个字符的任何此类pa 。通过在"paapandroid is awesomean papa"上执行 strip 来查看更多结果。

于 2018-02-22T09:27:06.347 回答