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