# Python | Check if one tuple is subset of other

• Last Updated : 21 Mar, 2023

Sometimes, while working with Python, we can work with different data and we might need to solve the problem of checking if one subset is part of another. Let’s discuss certain ways in which this task can be performed.

Method #1: Using issubset()

We can solve this problem using type conversion of tuple into a set and then check if one tuple is subset of other using issubset().

## Python3

 `# Python3 code to demonstrate working of``# Check if one tuple is subset of other``# using issubset()` `# initialize tuples``test_tup1 ``=` `(``10``, ``4``, ``5``, ``6``)``test_tup2 ``=` `(``5``, ``10``)` `# printing original tuples``print``(``"The original tuple 1 : "` `+` `str``(test_tup1))``print``(``"The original tuple 2 : "` `+` `str``(test_tup2))` `# Check if one tuple is subset of other``# using issubset()``res ``=` `set``(test_tup2).issubset(test_tup1)` `# printing result``print``(``"Is 2nd tuple subset of 1st ? : "` `+` `str``(res))`

Output :

```The original tuple 1 : (10, 4, 5, 6)
The original tuple 2 : (5, 10)
Is 2nd tuple subset of 1st ? : True```

Time Complexity: O(n) where n is the length of the larger tuple.
Auxiliary Space: O(n) as a new set is created from the tuple to check for the subset.

Method #2: Using all() + generator expression

The combination of the above functionalities can also perform this task. In this, we check for each element of one tuple with another using expression and all().

## Python3

 `# Python3 code to demonstrate working of``# Check if one tuple is subset of other``# using all() + generator expression` `# initialize tuples``test_tup1 ``=` `(``10``, ``4``, ``5``, ``6``)``test_tup2 ``=` `(``5``, ``10``)` `# printing original tuples``print``(``"The original tuple 1 : "` `+` `str``(test_tup1))``print``(``"The original tuple 2 : "` `+` `str``(test_tup2))` `# Check if one tuple is subset of other``# using all() + generator expression``res ``=` `all``(ele ``in` `test_tup1 ``for` `ele ``in` `test_tup2)` `# printing result``print``(``"Is 2nd tuple subset of 1st ? : "` `+` `str``(res))`

Output :

```The original tuple 1 : (10, 4, 5, 6)
The original tuple 2 : (5, 10)
Is 2nd tuple subset of 1st ? : True```

Time complexity: O(n*m), where n and m are the lengths of the input tuples.
Auxiliary space: O(1), as the code uses only a constant amount of extra space to store the variables and the result.

Method #3: Using list comprehension

## Python3

 `test_tup1 ``=` `(``10``, ``4``, ``5``, ``6``)``test_tup2 ``=` `(``5``, ``10``)``x``=``[j ``for` `i ``in` `test_tup1 ``for` `j ``in` `test_tup2]``print``([``"yes"` `if` `x ``else` `"no"``])`

Output

`['yes']`

Time complexity: O(m*n) where m and n are the lengths of test_tup1 and test_tup2 respectively.
Auxiliary space: O(m*n) to store the resulting list x.

Method #4: Using in operator

Step-by-step approach:

• Two tuples test_tup1 and test_tup2 are initialized.
• The original tuples test_tup1 and test_tup2 are printed.
• The variable c is initialized to 0 and the variable res is initialized to False.
• A for loop is used to iterate over each element i in the second tuple test_tup2.
• Inside the for loop, an if statement is used to check if the element i is present in the first tuple test_tup1.
• If the element i is present in the first tuple test_tup1, the count variable c is incremented by 1.
• After the for loop, an if statement is used to check if the count variable c is equal to the length of the second tuple test_tup2.
• If the count variable c is equal to the length of the second tuple test_tup2, the variable res is set to True.

Below is the implementation of the above approach:

## Python3

 `# Python3 code to demonstrate working of``# Check if one tuple is subset of other` `# initialize tuples``test_tup1 ``=` `(``10``, ``4``, ``5``, ``6``)``test_tup2 ``=` `(``5``, ``10``)` `# printing original tuples``print``(``"The original tuple 1 : "` `+` `str``(test_tup1))``print``(``"The original tuple 2 : "` `+` `str``(test_tup2))` `# Check if one tuple is subset of other``c``=``0``res``=``False``for` `i ``in` `test_tup2:``    ``if` `i ``in` `test_tup1:``        ``c``+``=``1``if``(c``=``=``len``(test_tup2)):``    ``res``=``True``        ` `# printing result``print``(``"Is 2nd tuple subset of 1st ? : "` `+` `str``(res))`

Output

```The original tuple 1 : (10, 4, 5, 6)
The original tuple 2 : (5, 10)
Is 2nd tuple subset of 1st ? : True```

Time complexity: O(n), where n is the length of test_tup2.
Auxiliary space: O(1), as only constant extra space is used for the variables c and res.

Method #5: Using enumerate function

## Python3

 `test_tup1 ``=` `(``10``, ``4``, ``5``, ``6``)``test_tup2 ``=` `(``5``, ``10``)``x``=``[j ``for` `a,i ``in` `enumerate``(test_tup1) ``for` `j ``in` `test_tup2]``print``([``"yes"` `if` `x ``else` `"no"``])`

Output

`['yes']`

Time complexity: O(n^2), where n is the length of the longer tuple (test_tup1 in this case).
Auxiliary space: O(n), where n is the length of the longer tuple.

Method #6: Using set() and <= operator:

One way to check if one tuple is a subset of another is by converting both tuples to sets and then using the <= operator to check if the first set is a subset of the second.

## Python3

 `# initialize tuples``test_tup1 ``=` `(``10``, ``4``, ``5``, ``6``)``test_tup2 ``=` `(``5``, ``10``)` `# check if one tuple is subset of other``res ``=` `set``(test_tup2) <``=` `set``(test_tup1)` `# printing result``print``(``"Is 2nd tuple subset of 1st ? : "` `+` `str``(res))``#This code is contributed by Edula Vinay Kumar Reddy`

Output

`Is 2nd tuple subset of 1st ? : True`

Time complexity: O(n)
Auxiliary Space: O(n)

My Personal Notes arrow_drop_up