def strip(self, chars=None):
""" For each element in `self`, return a copy with the leading and trailing characters removed. See also -------- char.strip """
return asarray(strip(self, chars))
首先贴上源码, 上面源码的注释Google翻译:对于`self`中的每个元素,返回带有前导和
尾随字符已删除.也可看看char.strip; 我们这里就不去看char.strip了.
我查询了网上相关的文档, 大概描述的很清楚, 但是有几个细节部分没有讲到, 本篇文章主要讲述strip()方法的细节部分,大佬可以鄙视我,请勿喷.
In [20]: str1 = "010101我的第一篇博客01010101"
In [21]: print(str1.strip('01'))
我的第一篇博客
通过观察str1,我们可以发现str1首尾包含的’01’的数量不一致, 前面是3个后面是4个,调用strip()方法后返回值为 删除指定字符’01’ 的 新字符,我们得出strip()的第一个特点: 删除的指定字符的数量无关
In [22]: str2 = '这是你的我的第一篇博客的你是这'
In [23]: print(str2.strip('这是你的'))
我的第一篇博客
我们再来看str2,删除指定字符 ‘这是你的’ , str2首尾都存在指定字符’这是你的’且乱序,调用strip()方法后,删除的部分为: <首: ‘这是你的’ >&<尾: ‘的你是这’ >,是不是感到很神奇, 同样是不是也有很多疑问? 为什么尾部字符串是以 ‘的’ 开头的, 这与我们指定删除字符串 ‘这是你的’ 顺序不符?我个人理解的是:在使用strip()删除多个指定字符时,strip()会逐个删除指定字符,即:将指定字符 ‘这是你的’ 拆分为: ‘这’,‘是’,‘你’,‘的’ 再进行删除;我们得出strip()第二个特点: 删除的指定字符与顺序无关 <!!注:关于这点为什么会出现这样的情况,欢迎不同声音提出意见补充,虚心求教!!>
在本篇文章结束前,出于好奇心, 我将strip()的参数 ‘这是你的’ 顺序打乱,结果又证明了一个特点: 参数的顺序不影响返回的结果
In [24]: str2
Out[24]: '这是你的我的第一篇博客的你是这'
In [25]: print(str2.strip('的这你是'))
我的第一篇博客
总结一下: python strip()方法很强大,基于一次偶然,让我发现了这个方法, 在对字符串的首尾删除操作中, 该方法可灵活使用,不用拘束于0123…789这样的顺位条件.
ps: 本人是一个爬虫小萌新,喜欢探讨问题,尤其对代码问题相当感兴趣,第一篇博文文字功底不太好, 初来乍到还请大佬们不吝赐教!