<1>str.strip()、str.lstrip()和str.rstrip()

1' str.strip()(主要方法)

方法:str.strip(self,chars)

作用:移除字符串的指定字符。(核心是),移除的结果作为一个返回值,原字符串仍不变。

chars参数:需要移除的字符串,如果省略或者为None,则默认移除空格。

要点

①:移除的字符串过程为从外向内,如果最外边没有要移除的字符串(假设里面却有的话),此时里面的那个字符串是不会被移除的。

s1='/a=abcd*/-a'
s2=s1.strip('a')
print(s1)
print(s2)

结果:
/a=abcd*/-a
/a=abcd*/-
需要移除的字符串是a,左边a在里面无法移除,右边最外边有一个a,可以移除

②:当要移除多个字符串(假设‘ab’)的时候,移除没有前后顺序,只有被移除对象两边最外面有b就移除b,移除后的最外边如果还有a则继续继续移除a。

#
s1='b*a /abcd*/b a-'
s2=s1.strip('ab')
print(s1)
print(s2)

#结果:
b*a /abcd*/b a-
*a /abcd*/b a-
移除原则:由外向内,内部字符串只能等待外边全部移除完毕才能移除。

#
s1='ba/abcd*/ a-ab'
s2=s1.strip('ab')
print(s1)
print(s2)

#结果:
ba/abcd*/ a-ab
/abcd*/ a-
先把b移除了,b移除完a就暴露到最外边了,这样就可以移除a。这里可以看到移除ab部分先后顺序,只要谁在外面谁先移除。

③:所以所strip移除字符串是有限制的,不是说有就移除,而是最外边有才移除,在里面不行,除非移除的多个字符串中的其他字符串被移除了,将这个字符串暴露到最外边了,才会开始移除。

s1='+/*-/=abcd*/*/+ -'
s2=s1.strip('/-*+= ')
print(s1)
print(s2)

结果:
+/*-/=abcd*/*/+ -
abcd
此时abcd两边都是一些特殊字符,想要去除就直接将所有字符放入需要移除的字符串中就可以全部移除了。不管怎么移除,肯定会依次将所有需移除的字符暴露在最外边。

 注:官方文档内容,供参考:

返回原字符串的副本,移除其中的前导和末尾字符。 chars 参数为指定要移除字符的字符串。 如果省略或为 None,则 chars 参数默认移除空格符。 实际上 chars 参数并非指定单个前缀或后缀;而是会移除参数值的所有组合:

>>>
>>> '   spacious   '.strip()
'spacious'
>>> 'www.example.com'.strip('cmowz.')
'example'
最外侧的前导和末尾 chars 参数值将从字符串中移除。 开头端的字符的移除将在遇到一个未包含于 chars 所指定字符集的字符时停止。 类似的操作也将在结尾端发生。 例如:

>>>
>>> comment_string = '#....... Section 3.2.1 Issue #32 .......'
>>> comment_string.strip('.#! ')
'Section 3.2.1 Issue #32'
官方

相关文章:

  • 2022-12-23
  • 2021-08-08
  • 2022-12-23
  • 2021-10-03
  • 2022-02-28
  • 2023-02-20
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-08-30
  • 2021-12-23
相关资源
相似解决方案