Moltiplica due liste in Python

Muhammad Waiz Khan 30 gennaio 2023
  1. Moltiplica due liste in Python usando il metodo zip()
  2. Moltiplica due liste in Python usando il metodo numpy.multiply()
  3. Moltiplica due liste in Python usando la funzione map()
Moltiplica due liste in Python

Questo tutorial mostrerà vari metodi per eseguire la moltiplicazione in termini di elementi di due liste in Python. Supponiamo di avere due liste di numeri interi con le stesse dimensioni e di voler moltiplicare gli elementi del primo lista con gli elementi nella stessa posizione nel secondo lista e ottenere una lista risultante con le stesse dimensioni.

Moltiplica due liste in Python usando il metodo zip()

Il metodo zip() integrato in Python accetta uno o più iterabili e aggrega gli iterabili in una tupla. Come le liste [1,2,3] e [4,5,6] diventeranno [(1, 4), (2, 5), (3, 6)]. Usando il metodo map(), accediamo a entrambe le liste per elemento e otteniamo la lista richiesta usando il metodo di comprensione delle liste.

L’esempio di codice seguente mostra come creare più liste 1D e 2D utilizzando zip() con la comprensione dell’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)

Produzione:

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

Moltiplicazione di liste 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)

Produzione:

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

Moltiplica due liste in Python usando il metodo numpy.multiply()

Il metodo multiply() della libreria NumPy in Python, prende due array/liste come input e restituisce un array/lista dopo aver eseguito la moltiplicazione per elemento. Questo metodo è semplice, poiché non dobbiamo fare alcun lavoro extra per la moltiplicazione 2D, ma il punto negativo di questo metodo è che non può essere utilizzato senza la libreria NumPy.

Gli esempi di codice seguenti dimostrano come moltiplicare liste 1D e 2D in Python utilizzando il metodo numpy.multiply().

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

Produzione:

[156   6   3  10   9   4]
  • Moltiplicazione 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)

Produzione:

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

Moltiplica due liste in Python usando la funzione map()

La funzione map prende una funzione e uno o più iterabili come input e restituisce un iterabile applicando la funzione fornita nelle liste di input.

Possiamo eseguire la moltiplicazione 1D e 2D per elemento di due liste in Python usando la funzione map() passando entrambe le liste come argomenti alla funzione map(). I seguenti esempi di codice dimostrano come possiamo usare map() per moltiplicare due liste Python.

Codice di esempio per moltiplicazione 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)

Produzione:

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

Codice di esempio per la moltiplicazione 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)

Produzione:

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

Articolo correlato - Python List