2024-04-26 15:04:23 发布
网友
我有以下清单:
list1 = [1, 5, 7, 13, 29, 35, 65, 91, 145, 203, 377, 455, 1015, 1885, 2639, 13195]
我如何将列表中的每个数字相乘?例如1 * 5 * 7 * 13 * 29..etc。在
1 * 5 * 7 * 13 * 29..etc
以下代码是否正确?公司名称:
作为operator模块和operator.mul的替代方案,您可以这样做:
operator
operator.mul
基本for循环:
list1 = [1,2,3,4,5] product = 1 for item in list1: product *= item print(product) # 120
使用numpy模块:
numpy
from numpy import prod list1 = [1,2,3,4,5] print(prod(list1)) # 120
导入functools并应用lambda函数:
functools
from functools import reduce list1 = [1,2,3,4,5] print(reduce(lambda x, y: x * y, list1)) # 120
或
from functools import reduce list1 = [1,2,3,4,5] prodFunc = lambda x, y: x * y print(reduce(prodFunc, list1)) # 120
或,无lambda:
from functools import reduce list1 = [1,2,3,4,5] def prodFunc(a,b): return a * b print(reduce(prodFunc, list1)) # 120
这里最简单的方法是使用一个reduce操作,它可以做到:
reduce
from functools import reduce import operator reduce(operator.mul, [1, 2, 3]) >>> 6
Reduce的意思是:将此操作应用于索引0和1。获取结果,然后对结果和索引2应用操作。如此等等。在
operator.mul只是表示乘法的少量语法糖,可以很容易地用另一个函数代替。在
这会做同样的事情。在
reduce函数是python2中的内置函数,但是it was removed and is only available in functools in Python 3。确保导入reduce将确保python2/3的兼容性。在
作为
operator
模块和operator.mul
的替代方案,您可以这样做:基本for循环:
使用
numpy
模块:导入
functools
并应用lambda函数:或
或,无lambda:
这里最简单的方法是使用一个
reduce
操作,它可以做到:Reduce的意思是:将此操作应用于索引0和1。获取结果,然后对结果和索引2应用操作。如此等等。在
^{pr2}$operator.mul
只是表示乘法的少量语法糖,可以很容易地用另一个函数代替。在这会做同样的事情。在
reduce函数是python2中的内置函数,但是it was removed and is only available in functools in Python 3。确保导入reduce将确保python2/3的兼容性。在
相关问题 更多 >
编程相关推荐