视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
python中strip()鲜为人知的陷阱
2020-11-27 14:24:17 责编:小采
文档


使用Python的时候,发现了一个strip()命令的坑。

之前对strip(X)的理解是:去除开头和结尾包含的"X"字符串,如果不包含则不去除。

这里面的一个坑是:python对字符串X的处理是一个set,而不是一个固定顺序的字符串。也就是说,是把X拆开成由单个字母组成的set来看待的,如果被strip()的字符串在左右边包含任意一个该set中的字符,都会被strip()掉。示例如下:

[python] view plain copy
 
>>> a="abc_1213" 
>>> a.strip('abc_') 
'1213' 
>>> a.strip('ba_c') 
'1213' 
>>> a.strip('zxcvbnmasdfghjklpoiuytrewq') 
'_1213' 
>>> a.strip('zxcvbnmasdfg_hjklpoiuytrewq') 
'1213'

最开始,个人的理解是第一种情况。strip('abc_')之后,只会去除左边的"abc_"。

实验之后,确认,是把要strip的字符串当做了一个set来处理的。只要是左右两边的字符在该set内,都会被逐一去除,直到遇到第一个不在该set内的字符为止。

【相关推荐】

1. Python免费视频教程

2. python基础入门之教你如何用strip()函数 去空格

3. 详解python中strip()和split()的使用方法

4. 详解python中strip函数的使用场景

5. Python中你不知道的strip()函数的妙用

下载本文
显示全文
专题