字符串处理常用函数
![](https://i-blog.csdnimg.cn/blog_migrate/fd34c08b5239c7e8b947b5b94661d6f8.png)
我们可以把字符串操作分为字符串的替换、删除、截取、复制、连接、比较、查找、分割等,部分使用范例如下:
如何判断一个对象是不是字符串
python中字符串有两重,一种是str,一种是unicode。那如何判断一个对象是不是字符串呢?应该使用isinstance(s,basestring),而不是isinstance(s,str)。看下面例子
1 2 3 4 5 6 7 8 9 10 11 12 |
>>>a = 'hi' >>> isinstance (a, str ) True >>>b = u 'Hi' >>> isinstance (b, str ) False >>> isinstance (b, basestring ) True >>> isinstance (b, unicode ) True >>> isinstance (a, unicode ) False |
要正确判读一个对象是不是字符串,要有basestring,因为basestring是str和unicode的基类,包含了普通字符串和unicode类型。
如何去掉字符串的双引号
1 2 3 4 5 6 7 8 |
a = '"string"' print (a, type (a)) b = eval (a) print (b, type (b)) 结果: "string" < class 'str' > string < class 'str' > |
下面讲str对象的基本用法
字符串的基本用法可以分以下五类,即性质判定、查找替换、分切与连接、变形、填空与删减。
(a)性质判定
性质判定有以下几个方法。
1 2 3 4 5 6 7 8 9 10 11 |
isalnum():是否全是字母和数字,并至少有一个字符 isalpha():是否全是字母,并至少有一个字符 isdigit():是否全是数字,并至少有一个字符 islower():字符串中字母是否全是小写 isupper():字符串中字母是否全是小写 isspace():是否全是空白字符,并至少有一个字符 istitle():判断字符串是否每个单词都有且只有第一个字母是大写 startswith(prefix[,start[,end]]):用于检查字符串是否是以指定子字符串开头,如果是则返回 True ,否则返 回 False 。如果参数 start 和 end 指定值,则在指定范围内检查。 endswith(suffix[,start[,end]]):用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回 True ,否则返回 False 。可选参数 "start" 与 "end" 为检索字符串的开始与结束位置。 is * ()这些都比较简单,从字母的字面上就可以理解, * with()函数可以接受start和end参数,如果善加利用可以优化性能。另外,从python 2.5 版本起, * with()函数族的第一个参数可接受 tuple 类型实参,当实参中某个元素匹配时,即返回 True |
(b)查找与替换
1 2 3 4 5 6 |
count(sub[,start[,end]]):统计字符串里某个字符sub出现的次数。可选参数为在字符串搜索的开始与结束位置。这个数值在调用replace方法时用得着。 find(sub[,start[,end]]):检测字符串中是否包含子字符串sub,如果指定start(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回 - 1 index(sub[,start[,end]]):跟find()方法一样,只不过如果sub不在 string中会抛出ValueError异常。 rfind(sub[,start[,end]]):类似于 find()函数,不过是从右边开始查找。 rindex(sub[,start[,end]]):类似于 index(),不过是从右边开始。 replace(old,new[,count])
|