gpt4 book ai didi

python - 如何在单行 FOR 循环中简化列表数字的乘法?

转载 作者:行者123 更新时间:2023-12-01 07:58:13 25 4
gpt4 key购买 nike

我想使用单行编写的 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)

最佳答案

您可以使用reduce来做到这一点和 operator :

from functools import reduce
import operator

num_list = [5,7,3,8]
reduce(operator.mul, num_list)

Python 3.8 (将于明年发布)参见here :

Added new function, math.prod(), as analogous function to sum() that returns the product of a ‘start’ value (default: 1) times an iterable of numbers. (Contributed by Pablo Galindo in bpo-35606)

这样你就可以做math.prod(num_list)

关于python - 如何在单行 FOR 循环中简化列表数字的乘法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55840593/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com