将列表中的每个元素乘以Python中的数字

在 Python 中将列表中的每个元素乘以一个数字

Multiply each element in a list by a number in Python

将列表中的每个元素乘以一个数字:

  1. 使用列表理解来遍历列表。
  2. 在每次迭代中,将当前元素乘以数字。
  3. 新列表将包含乘法结果。
主程序
# ✅ Multiply each element in list by number my_list = [2, 4, 6] result = [item * 10 for item in my_list] print(result) # 👉️ [20, 40, 60] # ------------------------------------------ # ✅ Multiply all elements in list import math from functools import reduce my_list = [2, 4, 6] # ✅ multiply all elements in list using math.prod() result = math.prod(my_list) print(result) # 👉️ 48 # --------------------------------------------------- # ✅ multiply all elements in list using reduce() result_2 = reduce(lambda x, y: x * y, my_list) print(result_2) # 👉️ 48

我们使用列表理解来遍历列表并将每个列表项乘以10

列表推导用于对每个元素执行一些操作,或者选择满足条件的元素子集。

在每次迭代中,我们将当前列表项乘以指定的数字并返回结果。

或者,您可以使用简单的for循环。

for使用循环将列表中的每个元素乘以一个数字

将列表中的每个元素乘以一个数字:

  1. 声明一个存储空列表的新变量。
  2. 使用for循环遍历原始列表。
  3. 在每次迭代中,将当前列表项乘以数字。
  4. 将结果附加到新列表。
主程序
my_list = [2, 4, 6] result = [] for item in my_list: result.append(item * 10) print(result)

循环的for工作方式与列表理解非常相似,但我们不是直接返回列表项,而是将它们附加到一个新列表中。

您还可以使用该map()函数来乘以列表中的每个元素。

主程序
my_list = [2, 4, 6] result = list(map(lambda item: item * 10, my_list)) print(result) # 👉️ [20, 40, 60]

map()函数将一个函数和一个可迭代对象作为参数,并使用可迭代对象的每个项目调用该函数。

我们传递给的 lambda 函数map对列表中的每个项目进行调用,将项目乘以10并返回结果。

最后一步是使用list()类将map对象转换为
list.

如果您使用 numpy 数组,则可以直接使用数组的乘法运算符将其每个元素乘以一个数字。

主程序
import numpy as np arr = np.array([2, 4, 6]) result = arr * 10 print(result) # 👉️ [20 40 60]
将 numpy 数组乘以一个数字实际上会将数组中的每个元素乘以指定的数字。

请注意,这仅适用于 numpy 数组。如果将 python 列表乘以一个数字,它会重复 N 次。

主程序
print([2, 4, 6] * 2) # 👉️ [2, 4, 6, 2, 4, 6]

将 Python 列表乘以 N 返回一个新列表,其中包含重复 N 次的原始列表的元素。

如果需要将列表中的所有元素相乘,请使用该math.prod()函数。

在 Python 中将列表中的所有元素相乘

使用该math.prod()方法将列表中的所有元素相乘,例如
result = math.prod(my_list). math.prod()方法计算提供的可迭代对象中所有元素的乘积。

主程序
import math from functools import reduce my_list = [2, 3, 5] # ✅ multiply all elements in list using math.prod() result = math.prod(my_list) print(result) # 👉️ 30 # --------------------------------------------------- # ✅ multiply all elements in list using reduce() result_2 = reduce(lambda x, y: x * y, my_list) print(result_2) # 👉️ 30

math确保在顶部导入模块。

我们使用该math.prod方法将列表中的所有元素相乘。

math.prod方法计算提供的可迭代对象中所有元素的乘积。

主程序
import math my_list = [5, 5, 5] result = math.prod(my_list) print(result) # 👉️ 125

该方法采用以下 2 个参数:

姓名 描述
可迭代的 一个迭代器,其元素计算其乘积
开始 产品的起始值(默认为1

如果可迭代对象为空,start则返回该值。

或者,您可以使用该reduce()功能。

使用#将列表中的所有元素相乘reduce()

将列表中的所有元素相乘:

  1. 将 lambda 函数和列表传递给该reduce()函数。
  2. lambda 函数应采用累加器和当前值,并应返回两者的乘积。
主程序
from functools import reduce my_list = [2, 3, 5] result = reduce(lambda x, y: x * y, my_list) print(result) # 👉️ 30

reduce
函数采用以下 3 个参数

姓名 描述
功能 一个带有 2 个参数的函数 – 累加值和可迭代的值。
可迭代的 iterable 中的每个元素都将作为参数传递给函数。
初始值设定项 一个可选的初始化值,在计算中放置在可迭代项之前。
使用累加值和当前迭代的值调用 lambda 函数并将它们相乘。

如果我们为参数提供一个值initializer,它会被放在计算中可迭代项的前面。

主程序
from functools import reduce my_list = [2, 3, 5] def do_math(acc, curr): print(acc) # 👉️ is 10 on first iteration return acc * curr result = reduce(do_math, my_list, 10) print(result) # 👉️ 300

我们传递10了初始化参数,因此 的值accumulator
将出现
10在第一次迭代中。

accumulator如果我们没有为 传递一个值,那么的值将被设置为可迭代对象中的第一个元素initializer

如果iterable为空并且initializer提供了,initializer
则返回。

如果initializer未提供并且可迭代对象仅包含1项目,则返回第一项。

主程序
from functools import reduce my_list = [2] result = reduce(lambda acc, curr: acc * curr, my_list) print(result) # 👉️ 2