Python 如何在一行循环中简化列表数的乘法?
我想要得到将所有的数字相乘到一个列表中的结果,使用一个写在一行中的for循环或者使用Lambda函数 我已经用经典的for循环很容易地解决了这个问题,但是我想简化这个表达式。我们的想法是不使用图书馆 我当前的代码:Python 如何在一行循环中简化列表数的乘法?,python,for-loop,lambda,Python,For Loop,Lambda,我想要得到将所有的数字相乘到一个列表中的结果,使用一个写在一行中的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 ]
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),您可以使用和:
在(将于明年发布)中,请参见:
添加了新函数math.prod(),作为sum()的类似函数
返回“开始”值(默认值:1)乘以iterable的乘积
数字的数量。(由巴勃罗·加林多在bpo-35606中提供)
因此,您将能够执行math.prod(num\u list)
from functools import reduce
import operator
num_list = [5,7,3,8]
reduce(operator.mul, num_list)