Python 字符串处理函数—strip使用探究
1.菜鸟教程对strip的描述
Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。
注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
2.官方源码给出的描述:
Return a copy of the sequence with specified leading and trailing bytes removed.
3.strip()函数语法
Str.strip([chars])
例如:
>>> ‘hash’.strip(‘abcd’)
从以上描述中可以发现几个关键字:“头尾”、“trailing”、“中间”,这些描述是不严谨的,实际使用中也有困惑:
疑惑1:头尾和中间界限在哪里?
疑惑2:可不可以用来删除所有字符?
疑惑3:这个函数对于字符串修改是对原字符串直接修改还是返回副本?
为了解开上述疑惑,请看以下示例:
示例1:
>>> a='aaaaaa'
>>> a.strip('a')
输出结果:''
示例2:
>>> a='aaaaa1aa'
>>> a.strip('a')
输出结果:'1'
示例3:
>>> a='aaa1aa1a'
>>> a.strip('a')
输出结果:'1aa1'
示例4:
>>> a=' \nabdc '
>>> a.strip()
输出结果:'abdc'
示例分析:
示例1说明strip函数参数**char中包含了所有待处理字符串的所有字符,不会区分头尾、中间,**实际结果是删除该字符串并的返回为空。
示例2、3结合说明从字符串两端往中间,第一个出现的不在参数char中字符即为中间和头尾的边界,中间部分即使包含char中的字符也不会被删除。
示例4说明char参数为空时,strip函数默认删除头尾的换行符、空格、制表符(tab)。
疑惑3的官方的描述里给出了答案,copy即是副本,不会直接修改原字符串,所以使用时候注意保存处理结果。
综上,所有疑惑均已得到解决,希望能帮助到您,若有其他问题欢迎评论一起探讨,感谢。