Given two lists, the task is to create pairs of elements (pairs can be repeated) from two list such that elements are not same in pairs.
Examples:
Input : list1 = [100, 20, 30, 400]
list2 = [400, 2, 30]
Output:
[[100, 400], [100, 2], [100, 30],
[20, 400], [20, 2], [20, 30],
[30, 400], [30, 2], [400, 2], [400, 30]]
Input: list1 = [10,20,30,40]
list2 = [60, 10, 20]
Output:
[[10, 60], [10, 20], [20, 60], [20, 10],
[30, 60], [30, 10], [30, 20],
[40, 60], [40, 10], [40, 20]]
Method #1: Using list comprehension
Python3
# Python code to create pair of element # from two list such that element # in pairs are not equal.# List initializationlist1 =[10, 20, 30, 40]list2 =[40, 50, 60]# using list comprehensionoutput = [[a, b] for a in list1 for b in list2 if a != b]# printing outputprint(output) |
[[10, 40], [10, 50], [10, 60], [20, 40], [20, 50], [20, 60], [30, 40], [30, 50], [30, 60], [40, 50], [40, 60]]
Time complexity: O(n^2), where n is the length of the longer list between list1 and list2.
Auxiliary space: O(k), where k is the number of pairs that satisfy the condition (a != b). The output list takes this amount of space.
Method #2: Using itertools and iteration
Python3
# Python code to create pair of element # from two list such that element # in pairs are not equal.# Importingimport itertools# List initializationlist1 =[11, 22, 33, 44]list2 =[22, 44, 66]# using itertoolstemp = list(itertools.product(list1, list1))# output list initializationout = []# iterationfor elem in temp: if elem[0]!= elem[1]: out.append(elem)# printing outputprint(out) |
[(11, 22), (11, 33), (11, 44), (22, 11), (22, 33), (22, 44), (33, 11), (33, 22), (33, 44), (44, 11), (44, 22), (44, 33)]
Time complexity: O(n^2) where n is the length of the input lists,
Auxiliary space: O(n^2).
