Python|将列表中的所有数字相乘(4 种不同的方式)
给定一个列表,打印将列表中所有数字相乘后的值。
例子:
Input : list1 = [1, 2, 3]
Output : 6
Explanation: 1*2*3=6
Input : list1 = [3, 2, 4]
Output : 24
方法一:遍历
将乘积的值初始化为 1(不是 0,因为 0 乘以任何返回零)。遍历到列表末尾,将每个数字与乘积相乘。最后存储在产品中的价值会给你最终的答案。
以下是上述方法的Python实现:
Python
# Python program to multiply all values in the
# list using traversal
def multiplyList(myList) :
# Multiply elements one by one
result = 1
for x in myList:
result = result * x
return result
# Driver code
list1 = [1, 2, 3]
list2 = [3, 2, 4]
print(multiplyList(list1))
print(multiplyList(list2))
Python3
# Python3 program to multiply all values in the
# list using numpy.prod()
import numpy
list1 = [1, 2, 3]
list2 = [3, 2, 4]
# using numpy.prod() to get the multiplications
result1 = numpy.prod(list1)
result2 = numpy.prod(list2)
print(result1)
print(result2)
Python3
# Python3 program to multiply all values in the
# list using lambda function and reduce()
from functools import reduce
list1 = [1, 2, 3]
list2 = [3, 2, 4]
result1 = reduce((lambda x, y: x * y), list1)
result2 = reduce((lambda x, y: x * y), list2)
print(result1)
print(result2)
Python3
# Python3 program to multiply all values in the
# list using math.prod
import math
list1 = [1, 2, 3]
list2 = [3, 2, 4]
result1 = math.prod(list1)
result2 = math.prod(list2)
print(result1)
print(result2)
输出:
6
24
方法 2:使用 numpy.prod()
我们可以使用 numpy.prod() from import numpy 来获取列表中所有数字的乘法。它根据乘法结果返回整数或浮点值。
下面是上述方法的 Python3 实现:
Python3
# Python3 program to multiply all values in the
# list using numpy.prod()
import numpy
list1 = [1, 2, 3]
list2 = [3, 2, 4]
# using numpy.prod() to get the multiplications
result1 = numpy.prod(list1)
result2 = numpy.prod(list2)
print(result1)
print(result2)
输出:
6
24
方法 3 使用 lambda函数:使用 numpy.array
Lambda 的定义不包括“return”语句,它总是包含一个返回的表达式。我们还可以将 lambda 定义放在任何需要函数的地方,我们根本不必将它分配给变量。这就是 lambda 函数的简单性。 Python中的reduce()函数接受一个函数和一个列表作为参数。使用 lambda函数和一个列表调用该函数,并返回一个新的简化结果。这对列表对执行重复操作。
下面是上述方法的 Python3 实现:
Python3
# Python3 program to multiply all values in the
# list using lambda function and reduce()
from functools import reduce
list1 = [1, 2, 3]
list2 = [3, 2, 4]
result1 = reduce((lambda x, y: x * y), list1)
result2 = reduce((lambda x, y: x * y), list2)
print(result1)
print(result2)
输出:
6
24
方法 4 使用数学库的 prod函数:使用 math.prod
从Python 3.8 开始,标准库的数学模块中包含了一个 prod函数,因此无需安装外部库。
下面是上述方法的 Python3 实现:
Python3
# Python3 program to multiply all values in the
# list using math.prod
import math
list1 = [1, 2, 3]
list2 = [3, 2, 4]
result1 = math.prod(list1)
result2 = math.prod(list2)
print(result1)
print(result2)
输出:
6
24