Python | Multiplicación cruzada de listas de tuplas

A veces, mientras trabajamos con registros de Python, podemos tener un problema en el que necesitamos realizar una multiplicación cruzada de la lista de tuplas. Este tipo de aplicación es popular en el dominio del desarrollo web. Analicemos ciertas formas en que se puede realizar esta tarea.

Método n.º 1: usar la comprensión de listas +zip()
La combinación de las funcionalidades anteriores se puede usar para realizar esta tarea en particular. En esto, iteramos a través de la lista utilizando la comprensión de listas y la multiplicación entre listas se realiza con la ayuda de zip().

# Python3 code to demonstrate working of
# Tuple list cross multiplication
# using list comprehension + zip()
  
# initialize lists
test_list1 = [(2, 4), (6, 7), (5, 1)]
test_list2 = [(5, 4), (8, 10), (8, 14)]
  
# printing original lists
print("The original list 1 : " + str(test_list1))
print("The original list 2 : " + str(test_list2))
  
# Tuple list cross multiplication
# using list comprehension + zip()
res = [(x[0] * y[0], x[1] * y[1]) for x, y in zip(test_list1, test_list2)]
  
# printing result
print("The multiplication across lists is : " + str(res))
Producción :

The original list 1 : [(2, 4), (6, 7), (5, 1)]
The original list 2 : [(5, 4), (8, 10), (8, 14)]
The multiplication across lists is : [(10, 16), (48, 70), (40, 14)]

Método n.º 2: usar bucle + zip() + map()
Esta es otra forma de realizar esta tarea. Esto es similar al método anterior, la diferencia es que la multiplicación se realiza mediante una función explícita y la extensión de la lógica a cada elemento se realiza mediante map().

# Python3 code to demonstrate working of
# Tuple list cross multiplication
# using max() + zip() + loop
  
# getting Product
def prod(val) :
    res = 1 
    for ele in val:
        res *= ele
    return res 
  
# initialize lists
test_list1 = [(2, 4), (6, 7), (5, 1)]
test_list2 = [(5, 4), (8, 10), (8, 14)]
  
# printing original lists
print("The original list 1 : " + str(test_list1))
print("The original list 2 : " + str(test_list2))
  
# Tuple list cross multiplication
# using max() + zip() + loop
res = [tuple(map(prod, zip(a, b))) for a, b in zip(test_list1, test_list2)]
  
# printing result
print("The multiplication across lists is : " + str(res))
Producción :

The original list 1 : [(2, 4), (6, 7), (5, 1)]
The original list 2 : [(5, 4), (8, 10), (8, 14)]
The multiplication across lists is : [(10, 16), (48, 70), (40, 14)]

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 *