![]() |
VOOZH | about |
Sometimes, while working with Python tuples, we can have a problem in which we need to perform similar index pairing. This kind of problem is peculiar, but can occur across certain domains. Let's discuss certain way in which this task can be performed.
Input : test_list1 = [(5, ), (1, ), (8, ), (10, )] test_list2 = [(8, ), (1, ), (11, ), (9, )]
Output : [[(5, 8)], [(1, 1)], [(8, 11)], [(10, 9)]]Input : test_list1 = [(5, 6, 7, 6)] test_list2 = [(8, 6, 7, 9)]
Output : [[(5, 8), (6, 6), (7, 7), (6, 9)]]
Method 1: Using list comprehension + zip() The combination of above functions can be used to solve this problem. In this, we perform the task of zipping similar index elements using zip() and list comprehension is used to compile all the pairs.
The original list 1 is : [(5, 6), (1, 2), (8, 9), (10, 33)] The original list 2 is : [(8, 7), (1, 3), (11, 23), (9, 4)] The paired tuples : [[(5, 8), (6, 7)], [(1, 1), (2, 3)], [(8, 11), (9, 23)], [(10, 9), (33, 4)]]
Time Complexity: O(n*n) where n is the number of elements in the list “test_list”. The list comprehension + zip() is used to perform the task and it takes O(n*n) time.
Auxiliary Space: O(n), the algorithm uses an additional list to store the result, thus consuming linear space which is O(n).
Method 2: Using for loop
Explanation:
The original list 1 is : [(5, 6), (1, 2), (8, 9), (10, 33)] The original list 2 is : [(8, 7), (1, 3), (11, 23), (9, 4)] The paired tuples : [[(5, 8), (6, 7)], [(1, 1), (2, 3)], [(8, 11), (9, 23)], [(10, 9), (33, 4)]]
Time complexity: O(n^2), where n is the length of the input lists.
Auxiliary space: O(n^2), since we are creating a nested list to store the paired tuples.
Method 3: Using reduce:
Algorithm:
The original list 1 is : [(5, 6), (1, 2), (8, 9), (10, 33)] The original list 2 is : [(8, 7), (1, 3), (11, 23), (9, 4)] The paired tuples : [[(5, 8), (6, 7)], [(1, 1), (2, 3)], [(8, 11), (9, 23)], [(10, 9), (33, 4)]]
Time Complexity: O(n^2), where 'n' is the length of each sublist in 'test_list1' and 'test_list2', since there are nested loops iterating over each element in both sublists.
Space Complexity: O(n^2), where 'n' is the length of each sublist in 'test_list1' and 'test_list2', since the result list is a nested list containing tuples of the same size as the sublists in the input lists.