Open In App

Python | Check if a list exists in given list of lists

Last Updated : 12 Apr, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

Given a list of lists, the task is to check if a list exists in given list of lists.

Input :
lst = [[1, 1, 1, 2], [2, 3, 4], [1, 2, 3], [4, 5, 6]]
list_search = [4, 5, 6]

Output:  True

Input :
lst = [[5, 6, 7], [12, 54, 9], [1, 2, 3]]
list_search = [4, 12, 54]

Output:  False

Let’s discuss certain ways in which this task is performed. 

Method #1: Using Counter The most concise and readable way to find whether a list exists in list of lists is using Counter. 

Python3




# Python code find whether a list
# exists in list of list.
import collections
 
# Input List Initialization
Input = [[1, 1, 1, 2], [2, 3, 4], [1, 2, 3], [4, 5, 6]]
 
# List to be searched
list_search = [2, 3, 4]
 
# Flag initialization
flag = 0
 
# Using Counter
for elem in Input:
    if collections.Counter(elem) == collections.Counter(list_search) :
        flag = 1
     
# Check whether list exists or not.   
if flag == 0:
    print("False")
else:
    print("True")


Output:

True

Time Complexity: O(n)
Auxiliary Space: O(1)

  Method #2: Using in 

Python3




# Python code find whether a list
# exists in list of list.
 
# Input List Initialization
Input = [[1, 1, 1, 2], [2, 3, 4], [1, 2, 3], [4, 5, 6]]
 
# List to be searched
list_search = [1, 1, 1, 2]
 
# Using in to find whether
# list exists or not
if list_search in Input:
    print("True")
else:
    print("False")


Output:

True

  Method #3: Using any 

Python3




# Python code find whether a list
# exists in list of list.
 
# Input List Initialization
Input = [[1, 1, 1, 2], [2, 3, 4], [1, 2, 3], [4, 5, 6]]
 
# List to be searched
list_search = [4, 5, 6]
 
# Using any to find whether
# list exists or not
if any(list == list_search for list in Input):
    print("True")
else:
    print("False")
    


Output:

True

Method #4 : Using count() method

Python3




# Python code find whether a list
# exists in list of list.
 
# Input List Initialization
Input = [[1, 1, 1, 2], [2, 3, 4], [1, 2, 3], [4, 5, 6]]
 
# List to be searched
list_search = [2, 3, 4]
res=False
if(Input.count(list_search)>=1):
    res=True
print(res)


Output

True

Time Complexity: O(n), where n is length of Input list.
Auxiliary Space: O(1)

Method #5: Using all() and any() both

Here is an approach using a list comprehension and the all function:

Python3




# Python code find whether a list
# exists in list of list.
 
#initialization
lst = [[1, 1, 1, 2], [2, 3, 4], [1, 2, 3], [4, 5, 6]]
list_search = [4, 5, 6]
#list comprehension generates a list of boolean values that
#indicate whether list_search is contained in each sublist in lst.
result = any(all(item in sublist for item in list_search) for sublist in lst)
#printing result
print(result)
#This code is contributed by Edula Vinay Kumar Reddy


Output

True

This would also output True.

The any function returns True if any element in the input iterable is True, and False otherwise. In this case, the list comprehension generates a list of boolean values that indicate whether list_search is contained in each sublist in lst. The any function then returns True if any of these boolean values is True, which indicates that list_search exists in lst.

In terms of time complexity, this approach has a complexity of O(n) since it needs to iterate over all the sublists in lst to check for the presence of list_search. In terms of space complexity, it has a complexity of O(n) since it creates a list of boolean values that is the same size as lst.



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads