Python | Check if one list is subset of other - GeeksforGeeks

30 Dec, 2021
Sometimes we encounter the problem of checking if one list is just an extension of the list i.e just a superset of one list. These kinds of problems are quite popular in competitive programming. Having shorthands for it helps the cause. Let’s discuss various ways to achieve this particular task.
all() is used to check all the elements of a container in just one line. Checks for all the elements of one list for existence in other lists. 
Python3
# Python3 code to demonstrate# to check if list is subset of other# using all() # initializing listtest_list = [9, 4, 5, 8, 10]sub_list = [10, 5, 4] # printing original listsprint("Original list : " + str(test_list))print("Original sub list : " + str(sub_list)) # using all() to# check subset of listflag = 0if(all(x in test_list for x in sub_list)):    flag = 1 # printing resultif (flag):    print("Yes, list is subset of other.")else:    print("No, list is not subset of other.")
Output : 
Original list : [9, 4, 5, 8, 10]
Original sub list : [10, 5, 4]
Yes, list is subset of other.
The most used and recommended method to check for a sublist. This function is tailor made to perform the particular task of checking if one list is a subset of another. 
Python3
# Python3 code to demonstrate# to check if list is subset of other# using issubset() # initializing listtest_list = [9, 4, 5, 8, 10]sub_list = [10, 5] # printing original listsprint("Original list : " + str(test_list))print("Original sub list : " + str(sub_list)) # using issubset() to# check subset of listflag = 0if(set(sub_list).issubset(set(test_list))):    flag = 1 # printing resultif (flag):    print("Yes, list is subset of other.")else:    print("No, list is not subset of other.")
Output : 
Original list : [9, 4, 5, 8, 10]
Original sub list : [10, 5]
Yes, list is subset of other.
Yet another method dealing with sets, this method checks if the intersection of both the lists ends up to be the sub list we are checking. This confirms that one list is a subset of the other.
Python3
# Python3 code to demonstrate# to check if list is subset of other# using intersection() # initializing listtest_list = [9, 4, 5, 8, 10]sub_list = [10, 5] # printing original listsprint("Original list : " + str(test_list))print("Original sub list : " + str(sub_list)) # using intersection() to# check subset of listflag = 0if((set(sub_list) & set(test_list)) == set(sub_list)):    flag = 1 # printing resultif (flag):    print("Yes, list is subset of other.")else:    print("No, list is not subset of other.")
Output : 
Original list : [9, 4, 5, 8, 10]
Original sub list : [10, 5]
Yes, list is subset of other.
Using the count of elements in both lists to check whether the second list is a subset of the first list. 
Python3
# Python3 code to demonstrate# to check if list is subset of other # Importingfrom collections import Counter  def checkInFirst(a, b):     # getting count    count_a = Counter(a)    count_b = Counter(b)     # checking if element exists in second list    for key in count_b:        if key not in count_a:            return False        if count_b[key] > count_b[key]:            return False    return True  # initializing lista = [1, 2, 4, 5]b = [1, 2, 3] # Calling functionres = checkInFirst(a, b) # Printing listprint("Original list : " + str(a))print("Original sub list : " + str(b)) if res == True:    print("Yes, list is subset of other.")else:    print("No, list is not subset of other.") # Added by Paras Jain(everythingispossible)
Output : 
Original list : [1, 2, 4, 5]
Original sub list : [1, 2, 3]
No, list is not subset of other.
Python3
# Python3 code to demonstrate# to check if list is subset of other # initializing listone = [1, 2, 3, 4, 5]two = [1, 2] # using set to find if element exists in another listresult = set(x in one for x in two) flag = 0 for ans in result:    if ans == False:        flag = 1 # Printing listprint("Original list : " + str(one))print("Original sub list : " + str(two)) if flag == 0:    print("Yes, list is subset of other.")else:    print("No, list is not subset of other.") # Added by Paras Jain(everythingispossible)
Output : 
Original list : [1, 2, 3, 4, 5]
Original sub list : [1, 2]
Yes, list is subset of other.
Python3
from functools import reducefrom operator import and_  # main containing checkerdef contains(superset, subset) -> bool:         # creates a list of boolean values and    # combines them using the and operator    return reduce(and_, [i in superset for i in subset])  # creating some lists for testingsuperset = [3, 4, 5, 6]subset = [4, 5]not_subset = [4, 5, 7] # print whether or not the# subset is in the supersetprint(f"{subset} is in {superset}: {contains(superset,subset)}")print(f"{not_subset} is in {superset}: {contains(superset,not_subset)}")
Output:
[4, 5] is in [3, 4, 5, 6]: True
[4, 5, 7] is in [3, 4, 5, 6]: False
everythingispossible
sagartomar9927
eldon15563
Python list-programs
python-list
Python
python-list
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
How to Install PIP on Windows ?
Different ways to create Pandas Dataframe
Create a Pandas DataFrame from Lists
How to drop one or multiple columns in Pandas Dataframe
*args and **kwargs in Python
Graph Plotting in Python | Set 1
How To Convert Python Dictionary To JSON?
Convert integer to string in Python
Python | Program to convert String to a List
Python | Pandas dataframe.groupby()