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]