Python – Dual element Rows Combinations

Sometimes, while working with data, we can have a problem in which we need to find combinations in list. This can be a simple. But sometimes, we need to perform a variation of it and have a dual element row instead of a single element. Let’s discuss certain ways in which this task can be performed.
Method #1 : Using list comprehension + enumerate() The combination of above functions can be used to perform this task. In this, we iterate through the list and perform the combinations using comprehension and enumerate().
Python3
# Python3 code to demonstrate # Dual element Rows Combinations# using list comprehension + enumerate()from collections import defaultdict# Initializing listtest_list = [[3, 4], [5, 6], [7, 8]]# printing original list print("The original list is : " + str(test_list))# Dual element Rows Combinations# using list comprehension + enumerate()res = [test_list[idx - len(test_list)] + test_list[idx + 1 - len(test_list)] for idx, ele in enumerate(test_list)]# printing result print ("Combination of dual rows list is : " + str(res)) |
The original list is : [[3, 4], [5, 6], [7, 8]] Combination of dual rows list is : [[3, 4, 5, 6], [5, 6, 7, 8], [7, 8, 3, 4]]
Time complexity: O(M^N) as the number of combinations generated is M choose N.
Auxiliary space: O(M^N) as the size of the resultant list is also M choose N.
Method #2 : Using map() + lambda + combinations() The combinations of above functions can be used to perform this task. In this, the task of iteration and pairing is done by map() and combinations() respectively.
Python3
# Python3 code to demonstrate # Dual element Rows Combinations# using map() + lambda + combinations()from itertools import combinations# Initializing listtest_list = [[3, 4], [5, 6], [7, 8]]# printing original list print("The original list is : " + str(test_list))# Dual element Rows Combinations# using map() + lambda + combinations()res = list(map(lambda ele: ele[0] + ele[1], combinations(test_list, 2)))# printing result print ("Combination of dual rows list is : " + str(res)) |
The original list is : [[3, 4], [5, 6], [7, 8]] Combination of dual rows list is : [[3, 4, 5, 6], [5, 6, 7, 8], [7, 8, 3, 4]]



