Skip to content
Related Articles

Related Articles

Python – Assign Frequency to Tuples
  • Last Updated : 02 Sep, 2020
GeeksforGeeks - Summer Carnival Banner

Given tuple list, assign frequency to each tuple in list.

Input : test_list = [(6, 5, 8), (2, 7), (6, 5, 8), (9, ), (2, 7)]
Output : [(6, 5, 8, 2), (2, 7, 2), (9, 1)]
Explanation : (2, 7) occurs 2 times, hence 2 is appened in tuple.

Input : test_list = [(2, 7), (2, 7), (6, 5, 8), (9, ), (2, 7)]
Output : [(6, 5, 8, 1), (2, 7, 3), (9, 1)]
Explanation : (2, 7) occurs 3 times, hence 3 is appened in tuple.

Method #1 : Using Counter() + items() + * operator + list comprehension

In this, we extract the frequency using Counter(), fetch frequency numbers using items(), * operator is used to unpack elements and list comprehension is used to assign this to all elements in tuple list.



Python3




# Python3 code to demonstrate working of 
# Assign Frequency to Tuples
# Using Counter() + items() + * operator + list comprehension
from collections import Counter
  
# initializing list
test_list = [(6, 5, 8), (2, 7), (6, 5, 8), (6, 5, 8), (9, ), (2, 7)]
  
# printing original list
print("The original list is : " + str(test_list))
  
# one-liner to solve problem
# assign Frequency as last element of tuple
res = [(*key, val) for key, val in Counter(test_list).items()]
  
# printing results
print("Frequency Tuple list : " + str(res))
Output
The original list is : [(6, 5, 8), (2, 7), (6, 5, 8), (6, 5, 8), (9, ), (2, 7)]
Frequency Tuple list : [(6, 5, 8, 3), (2, 7, 2), (9, 1)]

Method #2 : Using most_common() + Counter() + * operator + list comprehension

This is similar to the above method, just most_common() performs sort operation on list, which is not necessary.

Python3




# Python3 code to demonstrate working of 
# Assign Frequency to Tuples
# Using most_common() + Counter() + * operator + list comprehension
from collections import Counter
  
# initializing list
test_list = [(6, 5, 8), (2, 7), (6, 5, 8), (6, 5, 8), (9, ), (2, 7)]
  
# printing original list
print("The original list is : " + str(test_list))
  
# most_common performs sort on arg. list
# assign Frequency as last element of tuple
res = [(*key, val) for key, val in Counter(test_list).most_common()]
  
# printing results
print("Frequency Tuple list : " + str(res))
Output
The original list is : [(6, 5, 8), (2, 7), (6, 5, 8), (6, 5, 8), (9, ), (2, 7)]
Frequency Tuple list : [(6, 5, 8, 3), (2, 7, 2), (9, 1)]

Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.

My Personal Notes arrow_drop_up
Recommended Articles
Page :