Python – Emparejamiento cruzado en la lista de tuplas

Dadas 2 tuplas, realice el emparejamiento cruzado de las tuplas correspondientes, conviértalo en una sola tupla si el primer elemento de ambas tuplas coincide.

Entrada : lista_prueba1 = [(1, 7), (6, 7), (8, 100), (4, 21)], lista_prueba2 = [(1, 3), (2, 1), (9, 7) , (2, 17)]
Salida : [(7, 3)]
Explicación : 1 aparece como elemento de tupla en la pos. 1 en ambas tuplas, sus segundos elementos se emparejan y se devuelven.

Entrada : lista_prueba1 = [(10, 7), (6, 7), (8, 100), (4, 21)], lista_prueba2 = [(1, 3), (2, 1), (9, 7) , (2, 17)]
Salida : []
Explicación : NO es posible emparejar.

Método #1: Usar la comprensión de listas

En esto, verificamos el primer elemento usando declaraciones condicionales y construimos una nueva tupla en comprensión de lista.

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))
Producción

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)]

Método #2: Usando zip() + comprensión de lista

En esto, la tarea de emparejamiento se realiza usando zip() y la verificación condicional se realiza dentro de la comprensión de la lista.

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))
Producción

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)]

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *