Given a list of lists, the task is to find the count of unique sublists within list. Examples:
Input: [['Geek', 'for', 'Lazyroar'], ['Lazyroar', 'for'], ['for', 'Geeks', 'geek'], ['Geek', 'for', 'Lazyroar']] Output: {('Lazyroar', 'for'): 1, ('for', 'Geeks', 'geek'): 1, ('Geek', 'for', 'Lazyroar'): 2}
Below are some ways to achieve the task. Method #1: Using Iteration
Python3
# Python code to count unique sublist within list # Input list initialization Input = [[ 'Geek' , 'for' , 'Lazyroar' ], [ 'Lazyroar' , 'for' ], [ 'for' , 'Geeks' , 'geek' ], [ 'Geek' , 'for' , 'Lazyroar' ]] # Output list initialization Output = {} # Using Iteration for lis in Input : Output.setdefault( tuple (lis), list ()).append( 1 ) for a, b in Output.items(): Output[a] = sum (b) # Printing output print (Output) |
{(‘Geek’, ‘for’, ‘Lazyroar’): 2, (‘Lazyroar’, ‘for’): 1, (‘for’, ‘Geeks’, ‘geek’): 1}
Time Complexity: O(n)
Auxiliary Space: O(n)
Method #2: Using Counter
Python3
# Python code to find count of unique list in list of list # Importing counter from collection from collections import Counter # Input list initialization lst = [[ 1 , 2 , 3 ], [ 4 , 5 , 6 ], [ 3 , 2 , 1 ], [ 1 , 2 , 3 ]] # Using counter Output = Counter([ tuple (i) for i in lst]) # Printing output print (Output) |
Counter({(1, 2, 3): 2, (3, 2, 1): 1, (4, 5, 6): 1})
Time Complexity: O(n), where n is the number of elements in the list “test_list”.
Auxiliary Space: O(1), constant space needed
Method #3: Using Pandas
Python3
# Python code to count unique sublist within list # Importing from collections import Counter import pandas as pd # Input list initialization lst = [[ 1 , 2 , 3 ], [ 4 , 5 , 6 ], [ 3 , 2 , 1 ], [ 1 , 2 , 3 ]] # Getting count dict = Counter([ tuple (i) for i in lst]) # Creating pandas dataframe Output = pd.DataFrame(data = { 'list' : list ( dict .keys()), 'count' : list ( dict .values())}) # Printing output print (Output) |
count list 0 1 (3, 2, 1) 1 1 (4, 5, 6) 2 2 (1, 2, 3)
Time Complexity: O(n), where n is the length of the list
Auxiliary Space: O(n) additional space of size n is created where n is the number of elements in the list