在 Python 中用标量乘以列表

Muhammad Maisam Abbas 2023年1月30日 2022年5月17日
  1. 使用 Python 中的列表推导将列表元素乘以标量
  2. 使用 Python 中的 map() 函数将列表元素乘以标量
  3. 在 Python 中使用 Lambda 函数将列表元素乘以标量
  4. 在 Python 中使用 Numpy 数组将列表元素乘以标量
在 Python 中用标量乘以列表

本教程将讨论如何在 Python 中将所有列表元素与标量倍数相乘。

使用 Python 中的列表推导将列表元素乘以标量

列表推导式是一种无需在 Python 中使用 for 循环即可对每个列表元素执行操作的方法。列表推导优于循环,因为它们具有更快的执行时间和更少的代码。

下面的代码片段展示了如何在 Python 中将所有列表元素与一个标量与列表推导相乘。

li = [1,2,3,4]
multiple = 2.5
li = [x*multiple for x in li]
print(li)

输出:

[2.5, 5.0, 7.5, 10.0]

在上面的例子中,我们使用列表推导 [x*multiple for x in li] 将列表 li 与标量 multiple 相乘。将列表中的每个元素相乘后,输出中会显示 li2.5

使用 Python 中的 map() 函数将列表元素乘以标量

map() 函数 用于在特定迭代的每个元素上应用用户定义的函数。map() 函数将方法名称和可迭代对象作为输入参数,并将该方法应用于可迭代对象的每个元素。

我们首先必须定义一个只对一个元素执行乘法的方法才能使用这种方法。然后,此方法将通过 map() 函数迭代地应用于列表的每个元素。

map() 函数为每个元素返回一个地图对象,并使用 Python 中的 list() 函数转换为列表。

下面的代码片段展示了我们如何使用 map() 函数和用户定义的方法来将所有列表元素与 Python 中的标量相乘。

li = [1,2,3,4]
multiple = 2.5
def multiply(le):
    return le*multiple

li = list(map(multiply,li))
print(li)

输出:

[2.5, 5.0, 7.5, 10.0]

我们首先定义了方法 multiply(le),它将单个列表元素 le 作为输入参数,将它与标量 multiple 相乘,然后返回结果。然后我们使用 map(multiply, li) 函数将 multiply() 应用于列表 li 的所有元素。

map() 函数包含在 list() 函数中,将 map() 函数返回的结果转换为列表。最后,将列表 li 的每个元素乘以 2.5 后的结果将显示在输出中。

在 Python 中使用 Lambda 函数将列表元素乘以标量

Python 中的 Lambda 函数是匿名的单行函数,我们只需要在整个代码中使用一次。匿名是指这些函数没有名称。

我们可以在 Python 中使用 lambda 关键字 指定这些函数。我们可以在前面讨论的 map() 函数中使用这些 lambda 函数,将它们应用于每个列表元素。

下面的代码片段展示了我们如何在 map() 函数中使用 lambda 函数将每个列表元素乘以 Python 中的标量。

li = [1,2,3,4]
multiple = 2.5
li = list(map(lambda x: x*multiple, li))
print(li)

输出:

[2.5, 5.0, 7.5, 10.0]

我们指定了一个 lambda 函数,它将某个可迭代的每个元素与标量 multiple 相乘,并使用 map() 函数将其应用于列表 li。我们将 map() 函数返回的值转换为 Python 中的 list() 方法。

最后,将列表 li 的每个元素乘以 2.5 后的结果将显示在输出中。

与之前的方法相比,此方法要优越得多,因为我们可能不需要在代码中的其他任何地方使用此函数。当我们只需要在代码中使用一次 Lambda 函数时,它比传统函数更可取。

在 Python 中使用 Numpy 数组将列表元素乘以标量

前面讨论的所有方法都在 Python 中对列表执行操作。当列表很小时,这些方法效果很好。

使用这些方法的唯一缺点是列表操作通常比 NumPy 数组慢。

在这种方法中,我们首先将列表转换为 numpy 数组,将该数组与标量相乘,然后使用 NumPy 数组的 tolist() 函数 将结果数组转换回列表。

当列表大小很大并且需要大量计算时,这种方法更可取。

以下代码片段演示了此方法在 Python 中的工作原理。

import numpy as np
li = [1,2,3,4]
multiple = 2.5
arr = np.array(li)
arr = arr * multiple
li = arr.tolist()
print(li)

输出:

[2.5, 5.0, 7.5, 10.0]

我们使用 np.array(li) 函数将列表 li 转换为数组 arr。然后我们将数组与标量 multiple 相乘。

与列表不同,我们可以使用 arr = arr * multiple 轻松地将 NumPy 数组的每个元素与一个标量相乘。之后,我们使用 arr.tolist() 函数将新数组转换回列表。

最后,将列表 li 的每个元素乘以 2.5 后的结果将显示在输出中。当列表大小较小时,不应使用此方法。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

相关文章 - Python List