如何在 Python 中将两个列表相乘?

pythonserver side programmingprogramming

在给定的问题陈述中,我们必须使用 Python 创建一个将两个列表相乘的算法。我们可以在很多情况下使用这种方法,例如数据预处理、组合信息、缩放值等等。因此,我们将演示不同的方法和算法来完成这类工作。

理解问题

手头的问题是使用 Python 计算两个给定列表的乘法。所以基本上我们会得到两个常见的 Python 列表,我们必须将第一个列表的项目与第二个列表的项目相乘。例如,让我们看看下面的图片。

上述问题的逻辑

为了解决将两个给定列表相乘的问题,我们需要遍历两个列表的相应项目,然后将它们相乘。因此,结果将是两个列表的项目乘积的新列表。借助它,我们还可以采用其他一些方法将两个列表相乘:使用 for 循环、使用列表推导和使用 numpy 库。

方法 1:使用 for 循环

在这种方法中,我们将使用 for 循环遍历两个列表的项目并将它们与相应的项目相乘。并将相乘的值存储在名为 multiplied_list 的单独列表中。使用 for 循环的时间复杂度为 O(n),其中 n 是列表中存在的项目数。

示例

#使用 for 循环进行乘法
#初始化两个列表
first_list = [2, 4, 4, 6, 1]
second_list = [8, 2, 5, 7, 3]

#初始化结果列表
multiplied_list = []
for i1, i2 in zip(first_list, second_list):
    multiplied_list.append(i1*i2)

print("两个列表相乘: ", multiplied_list)

输出

两个列表相乘: [16, 8, 20, 42, 3]

方法 2:使用列表推导式

在这种方法中,我们将使用列表推导式。因此,列表推导式是一种方法,借助它,我们可以根据给定的列表和给定的条件创建一个新列表。在这种方法中,我们还将使用 zip 函数,这是一种迭代方法来迭代列表的项目

使用列表推导式将两个列表相乘的时间复杂度为 O(n),这里 n 是给定列表的大小。因为我们已经将列表的项目相乘并使用了 zip 函数,该函数需要 n 次才能完成任务。

示例

#使用列表推导式进行乘法
#初始化两个列表
first_list = [12, 14, 14, 16, 21]
second_list = [18, 12, 15, 17, 13]
multiplied_list = [a1 * a2 for a1, a2 in zip(first_list, second_list)]

print("相乘后的列表为: ", multiplied_list)

输出

相乘后的列表为:[216, 168, 210, 272, 273]

方法 3:使用 numpy

在此方法中,我们将使用 Python 的 numpy 库。每当我们需要处理数组时,我们都可以使用 numpy 库。Numpy 库包含一些用于处理数组的数学函数。因此,我们将使用 numpy 库的乘法函数并将给定列表的每个对应项相乘。使用 numpy 将两个列表相乘的时间复杂度为 O(n),因为第一个和第二个列表的大小为 n。

示例

#使用 numpy 库进行乘法运算

#导入 numpy 库
import numpy as nmp

#初始化两个列表
first_list = [11, 12, 13, 14, 15]
second_list = [1, 2, 3, 4, 5]

#使用 numpy 将两个列表相乘
multiplied_list = nmp.multiply(first_list, second_list)

#打印相乘后的列表
print("相乘后的列表为:" + str(multiplied_list))

输出

相乘后的列表为: [11 24 39 56 75]

结论

因此,我们可以通过迭代两个列表的相应项并将它们相乘来逐项相乘以获得结果。我们已经用不同的方法解决了给定的问题,并且所有方法在时间复杂度方面都是有效的。


相关文章