Q:

Python program to perform cross pairing in tuple list

belongs to collection: Python Tuple Programs

0

Example:

tuple = ("python", "includehelp", 43, 54.23)

List is a sequence data type. It is mutable as its values in the list can be modified. It is a collection of an ordered set of values enclosed in square brackets [].

Example:

list = [3 ,1,  5, 7]

We have two lists with each element a tuple and we need to perform cross pairing i.e. we need to create a tuple with second elements of tuples whose first elements are the same.

Here is an example for a better understanding of the problem,

Input:
tupList1 = [(1, 8), (9, 6), (0, 8), (4,5)] 
tupList2 = [(7, 8), (2, 5), (3, 6), (4,7)]

Output:
(5, 7)

Explanation: Here, only the tuples (4,5) and (4,7) have common first elements. So, cross pairing will consider both of them only.

 

All Answers

need an explanation for this answer? contact us directly to get an explanation for this answer

To solve this problem, we will be traversing the list and then checking for each tuple if there exists a tuple in another list that has the same first elements as this tuple. If yes, we will make a tuple with the second values of both the tuples and store them in a list.

For performing this task in the python programming language, we have more than one way as python has many built-in methods to reduce our efforts in tasks.

Method 1:

One way to solve the problem is by using list comprehension along with comparison using condition statements to create a new tuple that will have a second element of the tuple whose first element is the same.

# Python program to perform 
# Cross Pairing in Tuple List

# Creating and printing tuple list  
myList1 = [(1, 8), (9, 6), (0, 8), (4,5)]
myList2 = [(1, 3), (2, 1), (9, 7), (2, 17)]
print("Tuples of list 1 are " + str(myList1))
print("Tuples of list 2 are " + str(myList2))

# Performing cross Pairing in Tuple list 
crossTupleList = [(sub1[1], sub2[1]) for sub2 in myList2 for sub1 in myList1 if sub1[0] == sub2[0]]

# Printing crossed Tuple list 
print("Resultant Tuple list : " + str(crossTupleList))

Output:

Tuples of list 1 are [(1, 8), (9, 6), (0, 8), (4, 5)]
Tuples of list 2 are [(1, 3), (2, 1), (9, 7), (2, 17)]
Resultant Tuple list : [(8, 3), (6, 7)]

Method 2:

An alternate method to solve the problem is by using the zip() method with the condition of the first element's equality along with list comprehension.

# Python program to perform
# Cross Pairing in Tuple List

# Creating and printing tuple list  
myList1 = [(1, 8), (9, 6), (0, 8), (4,5)]
myList2 = [(1, 3), (2, 1), (9, 7), (2, 17)]
print("Tuples of list 1 are " + str(myList1))
print("Tuples of list 2 are " + str(myList2))

# Performing cross Pairing in Tuple list 
crossTupleList = [(val1[1], val2[1]) for val1, val2 in zip(myList1, myList2) if val1[0] == val2[0]]

# Printing crossed Tuple list 
print("Resultant Tuple list : " + str(crossTupleList))

Output:

Tuples of list 1 are [(1, 8), (9, 6), (0, 8), (4, 5)]
Tuples of list 2 are [(1, 3), (2, 1), (9, 7), (2, 17)]
Resultant Tuple list : [(8, 3)]

need an explanation for this answer? contact us directly to get an explanation for this answer

total answers (1)

Python Tuple Programs

This question belongs to these collections

Similar questions


need a help?


find thousands of online teachers now
Python program to concatenate tuple elements by de... >>
<< Python program to find the frequency of all tuple ...