Check if a list is in another list python

Given two lists A and B, write a Python program to Check if list A is contained in list B without breaking A’s order.

Examples:

Input : A = [1, 2], B = [1, 2, 3, 1, 1, 2, 2] Output : True Input : A = ['x', 'y', 'z'], B = ['x', 'a', 'y', 'x', 'b', 'z'] Output : False

 
Approach #1 : Naive Approach

A simple naive approach is to use two for loops and check if the whole list A is contained within list B or not. If such a position is met in list A, then break the loop and return true, otherwise false

def removeElements(A, B):

    for i in range(len(B)-len(A)+1):

        for j in range(len(A)):

            if B[i + j] != A[j]:

                break

        else:

            return True

    return False

A = [1, 2]

B = [1, 2, 3, 1, 1, 2, 2]

print(removeElements(A, B))

 
Approach #2 : List comprehension

A more efficient approach is to use List comprehension. We first initialize ‘n’ with length of A. Now use a for loop till len(B)-n and check in each iteration if A == B[i:i+n] or not.

def removeElements(A, B):

    n = len(A)

    return any(A == B[i:i + n] for i in range(len(B)-n + 1))

A = [1, 2]

B = [1, 2, 3, 1, 1, 2, 2]

print(removeElements(A, B))

 
Approach #3 : Using join and map module

Here we use join to join both lists to strings and then use in operator to check if list A is contained in B or not.

def removeElements(A, B):

    return ', '.join(map(str, A)) in ', '.join(map(str, B))

A = ['x', 'y', 'z']

B = ['x', 'a', 'y', 'x', 'b', 'z']

print(removeElements(A, B))

 Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.  

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning - Basic Level Course


During development in Machine learning, AI, or even web development, we generally come across a problem where we need to test if the particular item from a given list lies as a sub-string or not. To check if the list contains the specific element or not in Python, use the “in” operator or “not in” operator. Let’s explore this topic in detail.

To check if the list contains a specific item in Python, use the “in” operator. The “in” operator checks if the list contains a specific element or not. It can also check if the element exists on the list or not using the list.count() function.

Python list is an essential container as it stores elements of all the data types as a collection. Python “in operator” is the most convenient way to check if an item exists on the list or not.

This approach returns True if an item exists in the list and False if an item does not exist. The list need not be sorted to practice this approach of checking.

To check if the item exists in the list, use Python “in operator”.For example, we can use in operator with if condition, and if the item exists in the list, then condition returns True, and if not, then it returns false.

See the following syntax of Python in operator.

# app.py listA = ['Stranger Things', 'S Education', 'Game of Thrones'] if 'S Eductation' in listA: print("Yes, 'S Eductation' found in List : ", listA) python3 app.py Yes, 'S Eductation' found in List : ['Stranger Things', 'S Education', 'Game of Thrones']

Let’s take an example in which we do not find an item on the list.

# app.py listA = ['Stranger Things', 'S Education', 'Game of Thrones'] if 'Dark' in listA: print("Yes, 'S Eductation' found in List : ", listA) else: print("Nope, 'Dark' not found in the list")

Output

python3 app.py Nope, 'Dark' Not found in the list

The list does not contain the dark element, so it returns False, and else block executes.

Check item exists in the list using List comprehension.

We can also use list comprehension to check if the item exists in the Python list.

See the following code.

# app.py data_string = "The last season of Game of Thrones was not good" listA = ['Stranger Things', 'S Education', 'Game of Thrones'] print("The original string : " + data_string) print("The original list : " + str(listA)) res = [ele for ele in listA if(ele in data_string)] print("Does string contain any list element : " + str(bool(res)))

Output

python3 app.py The original string : The last season of Game of Thrones was not good The original list : ['Stranger Things', 'S Education', 'Game of Thrones'] Does string contain any list element : True

List comprehensions provide a concise way to create the lists.

It consists of brackets containing the expression followed by a for clause, then zero or more for or if clauses. The expressions can be anything, meaning you can put all types of objects in lists.

The result will be the new list resulting from evaluating an expression in the context of the for and if clauses follow it.

In our example, we check for the list and also with string items if we can find a match and return true.

Let’s see if the string contains the word which does not exist in an item of the list.

# app.py data_string = "The last season of BoJack Horseman was good" # initializing test list listA = ['Stranger Things', 'S Education', 'Game of Thrones'] # printing original string print("The original string : " + data_string) # printing original list print("The original list : " + str(listA)) # using list comprehension # checking if string contains list element res = [ele for ele in listA if(ele in data_string)] # print result print("Does string contain any list element : " + str(bool(res)))

Output

python3 app.py The original string: The last season of BoJack Horseman was good The original list : ['Stranger Things', 'S Education', 'Game of Thrones'] Does string contain any list element: False

Check if an element exists in the list using the list.count()

To check if the item exists in the Python list, use the list.count() method.

The syntax of the list.count() function is following.

list.count(elem)

Python List count(item) method returns the occurrence count of the given element in the list. If it’s greater than 0, it means a given item exists in the list.

# app.py listA = ['Stranger Things', 'S Education', 'Game of Thrones'] if listA.count('Stranger Things') > 0: print("Yupp, 'Stranger Things' found in List : ", listA)

Output

python3 app.py Yupp, 'Stranger Things' found in List : ['Stranger Things', 'S Education', 'Game of Thrones']

Check if an element exists in the list using any()

Using Python any() function is the most classical way in which you can perform this task and also efficiently. The any() function checks for a match in a string with a match of each list element.

# app.py data_string = "The last season of Game of Thrones was not good" listA = ['Stranger Things', 'S Education', 'Game of Thrones'] print("The original string : " + data_string) print("The original list : " + str(listA)) res = any(item in data_string for item in listA) print("Does string contain 'Game of Thrones' list element: " + str(res))

Output

python3 app.py The original string : The last season of Game of Thrones was not good The original list : ['Stranger Things', 'S Education', 'Game of Thrones'] Does string contain 'Game of Thrones' list element: True

From the output, Game of Thrones exists in the list.

Check if the list contains an item using not in inverse operator.

Python “not in” is an inbuilt operator that evaluates to True if it does not finds a variable in the specified sequence and False otherwise.

To check if the list contains a particular item, you can use the not in inverse operator. Let’s see the following example.

listA = ['Stranger Things', 'S Education', 'Game of Thrones'] if 'Witcher' not in listA: print("Yes, 'Witcher' is not found in List : ", listA)

Output

python3 app.py Yes, 'Witcher' is not found in List : ['Stranger Things', 'S Education', 'Game of Thrones']

 Python in and not in operators work fine for lists, tuples, sets, and dicts (check keys).

Python all() method to check if the list exists in another list

In this program, you will learn to check if the Python list contains all the items of another list and display the result using the python print() function.

We will use two lists having overlapping values. One of these is the big one that holds all the items of the second one.

  1. List1 – List1 contains all or some of the items of another list.
  2. List2 – It is the subset of the first one.

See the following code.

# app.py List1 = ['Homer', 'Bart', 'Lisa', 'Maggie', 'Lisa'] List2 = ['Bart', 'Homer', 'Lisa'] check = all(item in List1 for item in List2) if check is True: print("The list {} contains all elements of the list {}".format(List1, List2)) else: print("No, List1 doesn't have all elements of the List2.")

Output

python3 app.py The list ['Homer', 'Bart', 'Lisa', 'Maggie', 'Lisa'] contains all elements of the list ['Bart', 'Homer', 'Lisa']

You can see that the first list contains all the elements of the second list. This is because we have checked the first list using the all() method.

Conclusion

There are many approaches you can use to determine whether an item exists in the list or not. For example, we have seen the following ways.

That is it for this tutorial.

Video liên quan

Chủ đề