Python | Write similar events of a tuple

Method # 1: Using map () + Counter () + sorted

A combination of the above functions can be used to accomplish this task. In this, before feeding the data to Counter () to count occurrences, we sort the data so that all unordered tuples are ordered to count the same units.

# Python3 code to demonstrate how it works
# Record similar cases of tuples
# Using Counter () + map () + sorted

from collections import Counter

 
# initialize the list

test_list = [( 3 , 1 ), ( 1 , 3 ), ( 2 , 5 ) , ( 5 , 2 ), ( 6 , 3 )]

 
# print original list

print ( "The original list is: " + str (test_list))

 
# Record similar cases of tuples
# Using Counter () + map () + sorted

res = dict (Counter ( tuple (ele) for ele in map ( sorted , test_list)))

 
# print result

print ( " The frequency of like tuples: " + str (res))

Output:

 The original list is: [(3, 1), (1, 3), (2, 5), (5, 2), (6, 3)] The frequency of like tuples: {(2, 5): 2, (1, 3): 2, (3, 6): 1} 

 Method # 2: Using frozenset () + Counter ()

A combination of the above functions can be used to accomplish this particular task. In this case, the task performed by frozenset () sorted and map () is executed by frozenset () which internally orders the tuples.

# Python3 code to demonstrate how it works
# Record similar cases of tuples
# Using frozenset () + Counter ()

from collections import Counter

 
# initialize the list

test_list = [( 3 , 1 ), ( 1 , 3 ), ( 2 , 5 ), ( 5 , 2 ), ( 6 , 3 )]

 
# print original list

print ( "The original list is:" + str (test_list))

  
# Record similar cases of tuples
# Using frozenset () + Counter ()

r es = dict (Counter ( tuple ( frozenset (ele)) for ele in test_list) )

 
# print result

print ( "The frequency of like tuples:" + str (res))

Output:

 The original list is: [(3, 1), (1, 3), (2, 5), (5, 2), (6, 3)] The frequency of like tuples: {(2, 5): 2, (1, 3): 2, (3, 6): 1}