When it is required to restrict the tuples by frequency of first element’s value, a simple ‘if’ condition along with an iteration and ‘append’ method is used.
Example
Below is a demonstration of the same
my_list = [(21, 24), (13, 42), (11, 23), (32, 43), (25, 56),(73, 84), (91, 40), (40, 83), (13, 27)] print("The list is :") print(my_list) my_key = 1 my_result = [] mems = dict() for sub in my_list: if sub[0] not in mems.keys(): mems[sub[0]] = 1 else: mems[sub[0]] += 1 if mems[sub[0]] <= my_key: my_result.append(sub) print("The filtered tuples are :") print(my_result)
Output
The list is : [(21, 24), (13, 42), (11, 23), (32, 43), (25, 56), (73, 84), (91, 40), (40, 83), (13, 27)] The filtered tuples are : [(21, 24), (13, 42), (11, 23), (32, 43), (25, 56), (73, 84), (91, 40), (40, 83)]
Explanation
A list of tuples is defined and is displayed on the console.
An integer value is assigned to 1.
An empty list is defined.
An empty dictionary is created.
The list of tuple is iterated over, and if an element is not found in the key value of the dictionary, the 0th index is assigned to 1.
Otherwise, it is incremented by 1.
If it is less than or equal to the key, the element is appended to the empty result.
This result is the output that is displayed on the console.