In this tutorial, we are going to write a program that groups all the tuples with the same first element. Let's see an example to understand it clearly.
Input
[(1, 2, 3), (1, 4, 5), (3, 4, 1), (3, 4, 2)]
Output
[(1, 2, 3, 4, 5), (3, 4, 1, 4, 2)]
Let's see the steps to solve the problem.
- Initialize the list.
- Initialize an empty dictionary.
- Iterate over the list of tuples.
- Check if the first element of the tuple is present as a key in the dictionary or not.
- If it is present, then append the current tuple values without the first one to the previous values.
- If not present, then initialize the key with the current tuple elements including the first element.
- Print the values of the dict as a list.
Example
# initializing the list tuples = [(1, 2, 3), (1, 4, 5), (3, 4, 1), (3, 4, 2)] # empty dict result = {} # iterating over the tuples for sub_tuple in tuples: # checking the first element of the tuple in the result if sub_tuple[0] in result: # adding the current tuple values without first one result[sub_tuple[0]] = (*result[sub_tuple[0]], *sub_tuple[1:]) else: # adding the tuple result[sub_tuple[0]] = sub_tuple # printing the result in list print(list(result.values()))
Output
If you run the above code, then you will get the following result.
[(1, 2, 3, 4, 5), (3, 4, 1, 4, 2)]
Conclusion
You can try to solve the problem in different ways. And if you have any doubts in the tutorial, mention them in the comment section.