Python | Make pair from two list such that elements are not same in pairs
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 initialization list1 = [ 10 , 20 , 30 , 40 ] list2 = [ 40 , 50 , 60 ] # using list comprehension output = [[a, b] for a in list1 for b in list2 if a ! = b] # printing output print (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. # Importing import itertools # List initialization list1 = [ 11 , 22 , 33 , 44 ] list2 = [ 22 , 44 , 66 ] # using itertools temp = list (itertools.product(list1, list1)) # output list initialization out = [] # iteration for elem in temp: if elem[ 0 ]! = elem[ 1 ]: out.append(elem) # printing output print (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).
Contact Us