Multiplique duas listas em Python

Muhammad Waiz Khan 30 janeiro 2023
  1. Multiplique duas listas em Python usando o método zip()
  2. Multiplique duas listas em Python usando o método numpy.multiply()
  3. Multiplique duas listas em Python usando a função map()
Multiplique duas listas em Python

Este tutorial demonstrará vários métodos para realizar a multiplicação por elemento de duas listas em Python. Suponha que temos duas listas de inteiros com as mesmas dimensões e queremos multiplicar os elementos da primeira lista com os elementos da mesma posição na segunda lista e obter uma lista resultante com as mesmas dimensões.

Multiplique duas listas em Python usando o método zip()

O método integrado zip() em Python pega um ou mais iteráveis ​​e agrega os iteráveis ​​em uma tupla. Como as listas [1,2,3] e [4,5,6] se tornará [(1, 4), (2, 5), (3, 6)]. Usando o método map(), acessamos ambas as listas por elemento e obtemos a lista necessária usando o método de compreensão de lista.

O exemplo de código abaixo mostra como múltiplas listas 1D e 2D usando zip() com a compreensão da lista.

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)

Resultado:

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

Multiplicação 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)

Resultado:

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

Multiplique duas listas em Python usando o método numpy.multiply()

O método multiply() da biblioteca NumPy em Python, leva dois arrays / listas como entrada e retorna um array / lista após realizar a multiplicação elemento a elemento. Este método é direto, pois não temos que fazer nenhum trabalho extra para a multiplicação 2D, mas o ponto negativo deste método é que ele não pode ser usado sem a biblioteca NumPy.

Os exemplos de código a seguir demonstram como multiplicar listas 1D e 2D em Python usando o método numpy.multiply().

  • multiplicação 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)

Resultado:

[156   6   3  10   9   4]
  • Multiplicação 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)

Resultado:

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

Multiplique duas listas em Python usando a função map()

A função map recebe uma função e um ou mais iteráveis ​​como entrada e retorna um iterável aplicando a função fornecida nas listas de entrada.

Podemos realizar a multiplicação de elementos 1D e 2D de duas listas em Python usando a função map(), passando ambas as listas como argumentos para a função map(). Os exemplos de código a seguir demonstram como podemos usar map() para multiplicar duas listas Python.

Código de exemplo para multiplicação 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)

Resultado:

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

Código de exemplo para multiplicação 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)

Resultado:

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

Artigo relacionado - Python List