我希望得到将所有数字乘以列表的结果,使用一行写入的for循环或使用Lambda函数
我使用经典的for循环很容易解决它,但我想简化表达式。这个想法不是使用库。
我目前的代码:
num_list = [5,7,3,8]
R = 1;
for num in num_list:
R *= num
print(R)
>>> 840
我尝试过的:
R=1
R = [R*=num for num in num_list ]
^
SyntaxError: invalid syntax
我希望在简化表达式时获得相同的值(= 840)
from functools import reduce
import operator
num_list = [5,7,3,8]
reduce(operator.mul, num_list)
在Python 3.8(将于明年发布)见here:
添加了新函数math.prod(),作为sum()的类似函数,它返回'start'值(默认值:1)乘以可迭代数字的乘积。 (供稿人:Pablo Galindo,编号为bpo-35606)
所以你将能够做math.prod(num_list)