Multiplicar dos listas en Python

Muhammad Waiz Khan 30 enero 2023
  1. Multiplicar dos listas en Python utilizando el método zip()
  2. Multiplicación de dos listas en Python usando el método numpy.multiply()
  3. Multiplicar dos listas en Python usando la función map()
Multiplicar dos listas en Python

Este tutorial mostrará varios métodos para realizar la multiplicación por elementos de dos listas en Python. Supongamos que tenemos dos listas de enteros con las mismas dimensiones y queremos multiplicar elementos de la primera lista con los elementos en la misma posición de la segunda lista y obtener una lista resultante con las mismas dimensiones.

Multiplicar dos listas en Python utilizando el método zip()

El método zip() incorporado en Python toma uno o más iterables y agrega los iterables en una tupla. Como las listas [1,2,3] y [4,5,6] se convertirán en [(1, 4), (2, 5), (3, 6)]. Usando el método map(), accedemos a ambas listas por elementos y obtenemos la lista requerida usando el método de comprensión de listas.

El siguiente ejemplo de código muestra cómo multiplicar listas 1D y 2D usando zip() con la comprensión de listas.

list1 = [2, 4, 5, 3, 5, 4]
list2 = [4, 1, 2, 9, 7, 5]
product = [x * y for x, y in zip(list1, list2)]
print(product)

Producción :

[8, 4, 10, 27, 35, 20]

Multiplicación de listas 2D:

list1 = [[2, 4, 5], [3, 5, 4]]
list2 = [[4, 1, 2], [9, 7, 5]]
product = [[0] * 3] * 2

for x in range(len(list1)):
    product[x] = [a * b for a, b in zip(list1[x], list2[x])]

print(product)

Producción :

[[8, 4, 10], [27, 35, 20]]

Multiplicación de dos listas en Python usando el método numpy.multiply()

El método multiply() de la librería NumPy en Python, toma dos arrays/listas como entrada y devuelve un array/lista después de realizar la multiplicación por elementos. Este método es sencillo, ya que no tenemos que hacer ningún trabajo extra para la multiplicación 2D, pero el punto negativo de este método es que no se puede utilizar sin la biblioteca NumPy.

Los siguientes ejemplos de código demuestran cómo multiplicar listas 1D y 2D en Python utilizando el método numpy.multiply().

  • Multiplicación 1D:
import numpy as np

list1 = [12, 3, 1, 2, 3, 1]
list2 = [13, 2, 3, 5, 3, 4]

product = np.multiply(list1, list2)
print(product)

Producción :

[156   6   3  10   9   4]
  • Multiplicación 2D:
import numpy as np

list1 = [[12, 3, 1], [2, 3, 1]]
list2 = [[13, 2, 3], [5, 3, 4]]

product = np.multiply(list1, list2)
print(product)

Producción :

[[156   6   3]
 [ 10   9   4]]

Multiplicar dos listas en Python usando la función map()

La función map toma una función y uno o más iterables como entrada y devuelve un iterable aplicando la función proporcionada en las listas de entrada.

Podemos realizar la multiplicación por elementos 1D y 2D de dos listas en Python utilizando la función map() pasando ambas listas como argumentos a la función map(). Los siguientes ejemplos de código demuestran cómo podemos utilizar la función map() para multiplicar dos listas en Python.

Código de ejemplo para la multiplicación 1D:

list1 = [2, 4, 5, 3, 5, 4]
list2 = [4, 1, 2, 9, 7, 5]
product = list(map(lambda x, y: x * y, list1, list2))
print(product)

Producción :

[8, 4, 10, 27, 35, 20]

Código de ejemplo para la multiplicación 2D:

list1 = [[2, 4, 5], [3, 5, 4]]
list2 = [[4, 1, 2], [9, 7, 5]]
product = [[0] * 3] * 2

for x in range(len(list1)):
    product[x] = list(map(lambda a, b: a * b, list1[x], list2[x]))

print(product)

Producción :

[[8, 4, 10], [27, 35, 20]]

Artículo relacionado - Python List