In this article, we will discuss different ways to check if a list contains a substring or not in Python.
Table Of Contents
Introduction
Suppose we have a list of strings. Something like this,
["why", "where", "how", "this", "what"]
Now we want to check if any string in this list contains a substring – “is” or not. Here, the string “this” in list contains the substring “is”, so yes this list contains the given substring.
There are different ways to check if list contains a substring or not. Let’s discuss them one by one.
Check if list contains a substring using any() function
Iterate over all strings in list, and for each string, check if it contains the given substring or not. If a string contains the given substring then the conditional expression will evaluate to True, otherwise it will evaluate to False. Pass all the resultant values to the any() function, to check if any expression is evaluating to True or not.
The any() function in Python, accepts a sequence of boolean values, and returns True if any value in this boolean list evaluates to True. So, in this case if any() function returns True, it means list has a string that contains the given substring.
Frequently Asked:
- Python : Join / Merge lists ( two or more)
- Convert List to comma-separated string in Python
- Check if All Elements of List are in a String in Python
- How to create and initialize a list of lists in python?
Let’s see an example. Here, we will check if any string in this list contains a substring – “is” or not.
# List of strings listOfStrs = ["why", "where", "how", "this", "what"] # A Substring subStr = "is" # check if any string in list contains the given substring if any(subStr in elem for elem in listOfStrs): print('Yes, List contains the substring') else: print('No, List does not contains the substring')
Output :
Yes, List contains the substring
Yes, there is atleast a string in the list that contains the given substring.
Check if list contains a substring using List comprehension
Filter the list using List comprehension, and select only those strings which contains the given substring. If the length of this filtered list is more than 0, then it means that list has a string that contains the given substring. Let’s see an example. Here, we will check if any string in this list contains a substring – “is” or not.
# List of strings listOfStrs = ["why", "where", "how", "this", "what"] filteredList = [elem for elem in listOfStrs if "is" in elem] # check if any string in list contains the given substring if len(filteredList) > 0: print('Yes, List contains the substring') else: print('No, List does not contains the substring')
Output :
Yes, List contains the substring
Yes, there is atleast a string in the list that contains the given substring.
Check if list contains a substring using a For Loop
Iterate over all the strings in a list using a for loop, and for each string, check if the given substring exists in that string or not. As soon as, it finds a string like that, break the loop. Let’s see an example. Here, we will check if any string in this list contains a substring – “is” or not.
# List of strings listOfStrs = ["why", "where", "how", "this", "what"] # A Sub String subStr = "is" result = False # check if any string in list contains the given substring for elem in listOfStrs: if subStr in elem: result = True break if result: print('Yes, List contains the substring') else: print('No, List does not contains the substring')
Output :
Yes, List contains the substring
Yes, there is atleast a string in the list that contains the given substring.
Check if list contains a substring using filter() and Lambda functions
Using the filter() function, and a lambda expression, select only those strings which contains the given substring. If the length of this filtered list is more than 0, then it means that list has a string that contains the given substring. Let’s see an example. Here, we will check if any string in this list contains a substring – “is” or not.
# List of strings listOfStrs = ["why", "where", "how", "this", "what"] # A Sub String subStr = "is" # check if any string in list contains the given substring filteredList = list(filter(lambda elem: subStr in elem, listOfStrs)) if len(filteredList) > 0: print('Yes, List contains the substring') else: print('No, List does not contains the substring')
Output :
Yes, List contains the substring
Yes, there is atleast a string in the list that contains the given substring.
Summary
We learned about different ways to check if a list of strings contain a substring or not.