In Python, to find the index of a substring in a string can be located by python’s in-built function using find() or index(). Both of them return the starting index of the substring in a string if it exists. This article discusses which one to use when and why.
index() function
The index() method returns the index of a substring or char inside the string (if found). If the substring or char is not found, it raises an exception.
Syntax:
string.index(<substring>)
Example:
Python3
string = 'Lazyroar for Lazyroar' # returns index valueresult = string.index('for')print("Substring for:", result) result3 = string.index("best")print("substring best:", result3) |
Output:
Substring for: 6
Traceback (most recent call last):
File “<string>”, line 8, in <module>
ValueError: substring not found
find() method
The find() method returns the index of first occurrence of the substring or char (if found). If not found, it returns -1.
Syntax:
string.find(<substring>)
Example:
Python3
string = 'Lazyroar for Lazyroar' # returns index valueresult = string.find('for')print("Substring for:", result) result = string.find('best')print("Substring best:", result) |
Output:
Substring for: 6
Substring best: -1
Table of Difference Between index() vs find()
| index() | find() |
|---|---|
| Returns an exception if substring isn’t found | Returns -1 if substring isn’t found |
| It shouldn’t be used if you are not sure about the presence of the substring | It is the correct function to use when you are not sure about the presence of a substring |
| This can be applied to strings, lists and tuples | This can only be applied to strings |
| It cannot be used with conditional statement | It can be used with conditional statement to execute a statement if a substring is found as well if it is not |
