目录
1. count(sub[,start[,end]])
返回 sub 在字符串中不重叠的出现次数,可选参数 start 和 end 用于指定起始和结束位置
x = '01233210123abccbabc'
#查询数据sub必须为字符串,否则报错
x.count(1)
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: must be str, not int
x.count('0')
2
x.count('1')
3
x.count('4')
0
x.count('0123')
2
x.count('3210')
1
x.count('01',0)
2
x.count('01',1)
1
x.count('01',9)
0
x.count('01',7)
1
x.count('01',8)
0
x.count('01',0,1)
0
x.count('01',0,2)
1
x.count('01',0,8)
1
x.count('01',0,9)
2
2. find(sub[,start[,end]])
在字符串中查找 sub 子字符串,返回匹配的最低索引值,即从从左至右的第一个匹配字符串索引;
可选参数 start 和 end 用于指定起始和结束位置;
如果未能匹配子字符串,返回 -1;
单个子字符返回字符位置索引,子字符串返回第一个字符位置索引;
子字符串必须在被查询范围(全字符串 或 start至end-1范围)整段被完整匹配;
终止值大于起始值,查询不到,返回-1;
起始值存在,终止值可以为空;终止值存在,起始值为空则报错;
x = '0123456789abcdefg'
#查询非字符串数据,报错
x.find(3)
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: must be str, not int
#查询单个字符,返回字符索引值;查询字符串,返回匹配的最低索引值
x.find('3')
3
x.find('9ab')
9
#字符串必须完整匹配,否则查找不到,返回-1
x.find('9b')
-1
#从索引值4开始查找,查找不到,返回-1
x.find('3',4)
-1
#从索引值3开始查找,返回索引值3
x.find('3',3)
3
#查整段字符串,必须完整的在查询范围内被查询到,否则查询不到,返回-1
x.find('345',4)
-1
x.find('345',0,5)
-1
#起始索引值存在,终止索引值为空,可以查找
x.find('3',3,)
3
#终止索引值存在,起始索引值为空,报错
x.find('3',,3)
File "<input>", line 1
x.find('3',,3)
^
SyntaxError: invalid syntax
#从索引值0至3-1查找,查找不到,返回-1
x.find('3',0,3)
-1
#从索引值2至4-1查找,返回索引值3
x.find('3',2,4)
3
#终止值大于起始值,查找不到,返回-1
x.find('abc',13,9)
-1
x.find('abc',9,13)
10
3. rfind(sub[,start[,end]])
在字符串中自右向左查找 sub 子字符串,返回匹配的最高索引值,即从右至左的第一个匹配字符串索引;;
可选参数 start 和 end 用于指定起始和结束位置;
如果未能匹配子字符串,返回 -1;
单个子字符返回字符位置索引,子字符串返回第一个字符位置索引;
子字符串必须在被查询范围(全字符串 或 start至end-1范围)整段被完整匹配;
终止值大于起始值,查询不到,返回-1;
起始值存在,终止值可以为空;终止值存在,起始值为空则报错;
x = '01233210123abccbabc'
#find从左至右查询,rfind从右至左查询,子字符串返回第一个字符位置索引
x.rfind('123')
8
x.find('123')
1
#从起始索引值0、5、9查找,返回区域内从右至左的第一个完整匹配的字符串,的第一个字符索引值
x.rfind('123',0)
8
x.rfind('123',5)
8
x.rfind('123',9)
-1
#从起始索引值0至终点索引值5、9、11查找,返回区域内从右至左的第一个完整匹配的字符串,的第一个字符索引值
x.rfind('123',0,5)
1
x.rfind('123',0,9)
1
x.rfind('123',0,11)
8
4. index(sub[,start[,end]])
在字符串中查找 sub 子字符串,返回匹配的最低索引值;
可选参数 start 和 end 用于指定起始和结束位置;
与 find() 方法基本一致,除了如未能匹配子字符串时,不是抛出 -1,而是抛出 ValueError 异常;
x = '0123456789abcdefg'
#查询单个字符,返回字符索引值;查询字符串,返回匹配的最低索引值
x.index('3')
3
x.index('9ab')
9
#字符串必须完整匹配,否则查找不到,报错
x.index('9b')
Traceback (most recent call last):
File "<input>", line 1, in <module>
ValueError: substring not found
#从索引值4开始查找,查找不到,报错
x.index('3',4)
Traceback (most recent call last):
File "<input>", line 1, in <module>
ValueError: substring not found
#从索引值3开始查找,返回索引值3
x.index('3',3)
3
#查整段字符串,必须完整的在查询范围内被查询到,否则查询不到,报错
x.index('345',3)
3
x.index('345',2,5)
Traceback (most recent call last):
File "<input>", line 1, in <module>
ValueError: substring not found
#起始索引值存在,终止索引值为空,可以查找
x.index('345',2,)
3
#终止索引值存在,起始索引值为空,报错
x.index('345',,8)
File "<input>", line 1
x.index('345',,8)
^
SyntaxError: invalid syntax
5. rindex(sub[,start[,end]])
在字符串中自右向左查找 sub 子字符串,返回匹配的最高索引值;
可选参数 start 和 end 用于指定起始和结束位置;
与 rfind() 方法基本一致,除了如未能匹配子字符串时,不是抛出 -1,而是抛出 ValueError 异常;
x = '01233210123abccbabc'
#find从左至右查询,rfind从右至左查询,子字符串返回第一个字符位置索引
x.rindex('123')
8
x.index('123')
1
#从起始索引值0、5、9查找,返回区域内从右至左的第一个完整匹配的字符串,的第一个字符索引值
x.rindex('123',0)
8
x.rindex('123',5)
8
x.rindex('123',9)
Traceback (most recent call last):
File "<input>", line 1, in <module>
ValueError: substring not found
#从起始索引值0至终点索引值5、9、11查找,返回区域内从右至左的第一个完整匹配的字符串,的第一个字符索引值
x.rindex('123',0,5)
1
x.rindex('123',0,9)
1
x.rindex('123',0,11)
8
位置;如果未能匹配子字符串,抛出 ValueError 异常

本文介绍了Python字符串的查询统计方法,包括count、find、rfind、index和rindex五个函数,详细解析了它们的用法和区别,特别是在查找子字符串时的索引定位和异常处理情况。
1423

被折叠的 条评论
为什么被折叠?



