Open In App

Python - Test if tuple list has Single element

Last Updated : 10 Mar, 2023
Comments
Improve
Suggest changes
1 Like
Like
Report

Given a Tuple list, check if it is composed of only one element, used multiple times.

Input : test_list = [(3, 3, 3), (3, 3), (3, 3, 3), (3, 3)] 
Output : True 
Explanation : All elements are equal to 3.


Input : test_list = [(3, 3, 3), (3, 3), (3, 4, 3), (3, 3)] 
Output : False 
Explanation : All elements are not equal to any particular element. 

Method #1: Using loop

In this, we check for all the elements and compare them with the initial element of the initial tuple in the tuple list, if any element is different, the result is flagged off.


Output
The original list is : [(3, 3, 3), (3, 3), (3, 3, 3), (3, 3)]
Are all elements equal : True

Time complexity: O(n^2) where n is the number of sublists in the main list. The nested loop causes the time complexity to become quadratic. 
Auxiliary space: O(1) as the code only uses a few variables and does not allocate any additional memory dynamically.

Method #2 : Using all() + list comprehension

In this, we perform task of checking all elements to be same using all(), list comprehension is used to perform task of iterating through all the tuples in the tuple list.


Output
The original list is : [(3, 3, 3), (3, 3), (3, 3, 3), (3, 3)]
Are all elements equal : True

Time Complexity: O(n^2), where n is the number of sublists in the tuple list.
Auxiliary Space: O(1), as no extra space is required.

Method #3: Using len() and count()

In this we will initialize an empty list and iterate over list of tuples and add each element of tuple to empty list.If count of first element is equal to length of list,  then all elements are same


Output
The original list is : [(3, 3, 3), (3, 3), (3, 3, 3), (3, 3)]

Are all elements equal : True

Time Complexity: O(n^2), where n is the number of sublists in the tuple list.
Auxiliary Space: O(n), as extra space is required of size n.

Method #4 : Using extend() and count() methods


Output
The original list is : [(3, 3, 3), (3, 3), (3, 3, 5), (3, 3)]
Are all elements equal : False

Method #5 : Using extend() and operator.countOf() methods

Approach

  1.  Initiated a for loop to traverse over the list of tuples
  2. Convert each tuple element to list
  3. And extend all list to a new list
  4.  Now check the count of first element in the list is equal to the length of list
  5.  If equal assign True to res
  6.  Display res

Output
The original list is : [(3, 3, 3), (3, 3), (3, 3, 5), (3, 3)]
Are all elements equal : False

Time Complexity : O(N)

Auxiliary Space : O(1)

Method #5 : Using extend()+len()+* operator


Output
The original list is : [(3, 3, 3), (3, 3), (3, 3, 5), (3, 3)]
Are all elements equal : False

Method #5 : Using set()+len() methods


Output
The original list is : [(3, 3, 3), (3, 3), (3, 3, 3), (3, 3)]

Are all elements equal : True

Method #6: Using filter()+list()+ lambda functions


Output
The original list is : [(3, 3, 3), (3, 3), (3, 3, 3), (3, 3)]
Are all elements equal : True

Time Complexity: O(N*N)
Auxiliary Space: O(N*N)

Method #7: Using recursion method.


Output
The original list is : [(3, 3, 3), (3, 3), (3, 3, 3), (3, 3)]
Are all elements equal : True

Time Complexity: O(N*N)
Auxiliary Space: O(N*N)

Method #8: Using the itertools.groupby() function


Output
The original list is : [(3, 3, 3), (3, 3), (3, 3, 3), (3, 3)]
Are all elements single : True

Time Complexity: O(N*N)
Auxiliary Space: O(N*N)


Next Article
Practice Tags :

Similar Reads