Multiplier deux listes en Python

Muhammad Waiz Khan 30 janvier 2023
  1. Multiplier deux listes en Python en utilisant la méthode zip()
  2. Multiplier de deux listes en Python en utilisant la méthode numpy.multiply()
  3. Multiplier deux listes en Python en utilisant la fonction map()
Multiplier deux listes en Python

Ce tutoriel présente différentes méthodes pour effectuer une multiplication par éléments de deux listes en Python. Supposons que nous ayons deux listes d’entiers de mêmes dimensions et que nous souhaitions multiplier les éléments de la première liste par les éléments de la deuxième liste situés à la même position et obtenir une liste résultante de mêmes dimensions.

Multiplier deux listes en Python en utilisant la méthode zip()

La méthode intégrée zip() en Python prend un ou plusieurs iterables et les agrège en un tuple. Comme les listes [1,2,3] et [4,5,6] deviendront [(1, 4), (2, 5), (3, 6)]. En utilisant la méthode map(), nous accédons aux deux listes par élément et obtenons la liste requise en utilisant la méthode de compréhension de liste.

L’exemple de code ci-dessous montre comment multiplier les listes 1D et 2D en utilisant zip() avec la compréhension de liste.

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)

Production :

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

Multiplication des listes 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)

Production :

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

Multiplier de deux listes en Python en utilisant la méthode numpy.multiply()

La méthode multiply() de la bibliothèque NumPy en Python, prend deux tableaux/listes en entrée et retourne un tableau/liste après avoir effectué une multiplication par éléments. Cette méthode est simple, car nous n’avons pas de travail supplémentaire à faire pour la multiplication 2D, mais le point négatif de cette méthode est qu’elle ne peut pas être utilisée sans la bibliothèque NumPy.

Les exemples de code ci-dessous montrent comment multiplier des listes 1D et 2D en Python en utilisant la méthode numpy.multiply().

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

Production :

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

Production :

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

Multiplier deux listes en Python en utilisant la fonction map()

La fonction map prend une fonction et un ou plusieurs itérables en entrée et renvoie un itérable en appliquant la fonction fournie sur les listes d’entrée.

Nous pouvons effectuer une multiplication par éléments 1D et 2D de deux listes en Python en utilisant la fonction map() en passant les deux listes comme arguments à la fonction map(). Les exemples de code ci-dessous montrent comment nous pouvons utiliser la fonction map() pour multiplier deux listes en Python.

Exemple de code pour la multiplication 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)

Production :

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

Exemple de code pour la multiplication 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)

Production :

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

Article connexe - Python List