用 Python 將兩個列表相乘

Muhammad Waiz Khan 2023年1月30日
  1. 在 Python 中使用 zip() 方法將兩個列表相乘
  2. 在 Python 中使用 numpy.multiply() 方法對兩個列表進行乘法
  3. 在 Python 中使用 map() 函式將兩個列表相乘
用 Python 將兩個列表相乘

本教程將演示在 Python 中執行兩個列表元素相乘的各種方法。假設我們有兩個維度相同的整數列表,我們想將第一個列表中的元素與第二個列表中相同位置的元素相乘,得到一個維度相同的結果列表。

在 Python 中使用 zip() 方法將兩個列表相乘

在 Python 中內建的 zip() 方法接受一個或多個可迭代物件並將可迭代物件聚合成一個元組。像列表 [1,2,3][4,5,6] 將變成 [(1, 4), (2, 5), (3, 6)]。使用 map() 方法,我們按元素訪問兩個列表,並使用列表推導方法得到所需的列表。

下面的程式碼示例展示瞭如何使用 zip() 與列表推導式來複用 1D 和 2D 列表。

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)

輸出:

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

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)

輸出:

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

在 Python 中使用 numpy.multiply() 方法對兩個列表進行乘法

Python 中 NumPy 庫的 multiply() 方法,將兩個陣列/列表作為輸入,進行元素乘法後返回一個陣列/列表。這個方法很直接,因為我們不需要為二維乘法做任何額外的工作,但是這個方法的缺點是沒有 NumPy 庫就不能使用。

下面的程式碼示例演示瞭如何在 Python 中使用 numpy.multiply() 方法對 1D 和 2D 列表進行乘法。

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

輸出:

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

輸出:

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

在 Python 中使用 map() 函式將兩個列表相乘

map 函式接收一個函式和一個或多個迭代數作為輸入,並返回一個迭代數,將所提供的函式應用於輸入列表。

我們可以在 Python 中使用 map() 函式,通過將兩個列表作為引數傳遞給 map() 函式,對兩個列表進行 1D 和 2D 元素乘法。下面的程式碼示例演示了我們如何使用 map() 對兩個 Python 列表進行乘法。

一維乘法的示例程式碼:

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)

輸出:

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

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)

輸出:

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

相關文章 - Python List