To check if a string contains another string in Python, use the in operator.
For example:
if "word" in somestring: # do something
To also find the index at which the substring occurs, use the find() method of a string.
For example:
somestring.find("word")
This returns the first index at which the substring “word” occurs. If no string is found, it returns -1.
Let’s see some examples.
Examples of Checking If a String Is a Substring of Another String
Let’s figure out if the word “This” occurs in a string:
sentence = "This is just a sentence" if "This" in sentence: print("Found it!")
Output:
Found it!
Let’s then figure out the index at which it occurs:
sentence = "This is just a sentence. This is another." idx = sentence.find("This") print("The word 'This' begins at:", idx)
Output:
The word 'This' begins at: 0
As you can see, the find() method only cares about the first occurrence of the word “This” in the sentence.
An Edge Case
If you are using the in operator, check that the main string is not None. If you do no do that, you get an error.
For example:
sentence = None if "This" in sentence: print("Found it!")
Output:
TypeError: argument of type 'NoneType' is not iterable
To avoid this error, make sure to check against None like this:
sentence = None if sentence is not None and "This" in sentence: print("Found it!")
Conclusion
Today you learned how to check if a string contains a substring in Python.
To recap:
- Use the in statement to check if a string is a substring of another string.
- Use the string’s built-in find() method to figure out the index at which the string starts in another string.
Thanks for reading. I hope you enjoy it.
Happy coding!