Python String find() method is used to find the index of a substring in a string.
Table of Contents
Python String find()
The syntax of find() function is:
str.find(sub[, start[, end]])
This function returns the lowest index in the string where substring “sub” is found within the slice s[start:end].
start default value is 0 and it’s an optional argument.
end default value is length of the string, it’s an optional argument.
If the substring is not found then -1 is returned.
We should use the find() method when we want to know the index position of the substring. For checking if a substring is present, we can use in operator.
Python String find() examples
Let’s look at some simple examples of find() method.
s = 'abcd1234dcba'
print(s.find('a')) # 0
print(s.find('cd')) # 2
print(s.find('1', 0, 5)) # 4
print(s.find('1', 0, 2)) # -1
Python String rfind()
Python string rfind() method is similar to find(), except that search is performed from right to left.
s = 'abcd1234dcba'
print(s.rfind('a')) # 11
print(s.rfind('a', 0, 20)) # 11
print(s.rfind('cd')) # 2
print(s.rfind('1', 0, 5)) # 4
print(s.rfind('1', 0, 2)) # -1
Find all indexes for substring
Python string find() and rfind() returns the first matched index. We can define a custom function to find all the indexes where the substring is found.
def find_all_indexes(input_str, search_str):
l1 = []
length = len(input_str)
index = 0
while index < length:
i = input_str.find(search_str, index)
if i == -1:
return l1
l1.append(i)
index = i + 1
return l1
s = 'abaacdaa12aa2'
print(find_all_indexes(s, 'a'))
print(find_all_indexes(s, 'aa'))
Output:
[0, 2, 3, 6, 7, 10, 11]
[2, 6, 10]
Reference: str.find()
This is good explanation
great work explaining how to use find(). your examples covered all the parameters listed in the syntax.