|
发表于 2022-3-12 15:40:11
|
显示全部楼层
从你的两个例子,其实就可以看出 'xyabz123z'.strip('xyz') 是 按指定字符集 删除左右两端的 字符 (默认是删除左右两端的空格符)
第二个例子之所以结果是 taoba , 那是因为 bao 的 'o' 也是"在右边"且属于你所指定的'.wcom'字符集,所以会被删除,tao的'o'因为是"在中间",不是strip()所能操作的范围,所以没有被删除。
换句话说,strip()是分别从左右两端开始搜索和匹配,匹配上了就删除,一旦没匹配上就停止。
由此,你甚至可以自己实现一个同样功能的函数,如:
- >>> def myStrip(s, char=' '):
- ls = list(s)
- tmp_ls = ls[:]
- for c in tmp_ls:
- if c in char:
- ls.remove(c)
- else:
- break
-
- lsr = ls[::-1]
- tmp_lsr = lsr[:]
- for c in tmp_lsr:
- if c in char:
- lsr.remove(c)
- else:
- break
-
- return ''.join(lsr[::-1])
- >>> myStrip(s=' www.taobao.com ',)
- 'www.taobao.com'
- >>> myStrip(s=' www.taobao.com ', char='.w')
- ' www.taobao.com '
- >>> myStrip(s=' www.taobao.com ', char=' .w')
- 'taobao.com'
- >>> myStrip(s=' www.taobao.com ', char=' .wcom')
- 'taoba'
- >>>
复制代码
|
评分
-
查看全部评分
|