Python字符串index()
时间:2020-02-23 14:43:26 来源:igfitidea点击:
Python String index()函数返回找到指定子字符串的最低索引。
如果未找到子字符串,则会引发" ValueError"。
Python字符串index()语法
该函数语法为:
str.index(sub[, start[, end]])
起始参数的默认值为0,它是一个可选参数。
end参数的默认值是字符串的长度,它是一个可选参数。
当我们想知道子字符串的索引位置时,应该使用index()函数。
为了检查是否存在子字符串,我们可以使用in运算符。
Python字符串索引()与查找()
如果未找到子字符串,Python字符串index()函数将引发ValueError,而find()函数将返回-1。
这是这些功能之间的唯一区别。
Python String index()示例
让我们看一下index()函数的一些简单示例。
s = 'abcd1234dcba'
print(s.index('a'))
print(s.index('cd'))
print(s.index('1', 0, 5))
输出:
0 2 4
现在让我们看另一个示例,其中不存在子字符串,并且引发ValueError。
我将使用try-except块来捕获异常并打印其消息。
s = 'abcd1234dcba'
try:
print(s.index('1', 0, 2))
except ValueError as ve:
print(ve)
输出:substring not found
Python字符串rindex()
Python字符串rindex()方法类似于index(),不同之处在于搜索是从右到左执行的。
s = 'abcd1234dcba'
print(s.rindex('a'))
print(s.rindex('cd'))
print(s.rindex('1', 0, 5))
try:
print(s.rindex('1', 0, 2))
except ValueError as ve:
print(f'Error Message = {ve}')
输出:
11 2 4 Error Message = substring not found
使用index()查找子字符串的所有索引
Python字符串index()方法返回第一个匹配的索引。
我们可以定义一个自定义函数,以找到其中找到子字符串的所有索引。
def find_all_indexes(input_str, search_str):
l1 = []
length = len(input_str)
position = 0
while position < length:
try:
i = input_str.index(search_str, position)
l1.append(i)
position = i + 1
except ValueError as ve1:
# finally exception will be raised because all the indexes are found
return l1
s = 'abaacdaa12aa2'
print(find_all_indexes(s, 'a'))
print(find_all_indexes(s, 'aa'))
输出:
[0, 2, 3, 6, 7, 10, 11] [2, 6, 10]

