Skip to content
Related Articles

Related Articles

Python – Cross Pairing in Tuple List

View Discussion
Improve Article
Save Article
Like Article
  • Last Updated : 02 Sep, 2020

Given 2 tuples, perform cross pairing of corresponding tuples, convert to single tuple if 1st element of both tuple matches.

Input : test_list1 = [(1, 7), (6, 7), (8, 100), (4, 21)], test_list2 = [(1, 3), (2, 1), (9, 7), (2, 17)]
Output : [(7, 3)]
Explanation : 1 occurs as tuple element at pos. 1 in both tuple, its 2nd elements are paired and returned.

Input : test_list1 = [(10, 7), (6, 7), (8, 100), (4, 21)], test_list2 = [(1, 3), (2, 1), (9, 7), (2, 17)]
Output : []
Explanation : NO pairing possible.

Method #1 : Using list comprehension

In this, we check for 1st element using conditional statements and, and construct new tuple in list comprehension.

Python3




# Python3 code to demonstrate working of 
# Cross Pairing in Tuple List
# Using list comprehension
  
# initializing lists
test_list1 = [(1, 7), (6, 7), (9, 100), (4, 21)]
test_list2 = [(1, 3), (2, 1), (9, 7), (2, 17)]
  
# printing original lists
print("The original list 1 : " + str(test_list1))
print("The original list 2 : " + str(test_list2))
  
# corresponding loop in list comprehension
res = [(sub1[1], sub2[1]) for sub2 in test_list2 for sub1 in test_list1 if sub1[0] == sub2[0]]
  
# printing result 
print("The mapped tuples : " + str(res))

Output

The original list 1 : [(1, 7), (6, 7), (9, 100), (4, 21)]
The original list 2 : [(1, 3), (2, 1), (9, 7), (2, 17)]
The mapped tuples : [(7, 3), (100, 7)]

Method #2 : Using zip() + list comprehension

In this, the task of pairing is done using zip() and conditional check is done inside list comprehension.

Python3




# Python3 code to demonstrate working of 
# Cross Pairing in Tuple List
# Using zip() + list comprehension
  
# initializing lists
test_list1 = [(1, 7), (6, 7), (9, 100), (4, 21)]
test_list2 = [(1, 3), (2, 1), (9, 7), (2, 17)]
  
# printing original lists
print("The original list 1 : " + str(test_list1))
print("The original list 2 : " + str(test_list2))
  
# zip() is used for pairing 
res = [(a[1], b[1]) for a, b in zip(test_list1, test_list2) if a[0] == b[0]]
  
# printing result 
print("The mapped tuples : " + str(res))

Output

The original list 1 : [(1, 7), (6, 7), (9, 100), (4, 21)]
The original list 2 : [(1, 3), (2, 1), (9, 7), (2, 17)]
The mapped tuples : [(7, 3), (100, 7)]


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!