码迷,mamicode.com
首页 > 编程语言 > 详细

python一行代码求阶乘或求和(reduce函数的使用)

时间:2021-06-10 17:52:09      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:def   Python一   mat   整数   需要   sel   python   过程   连续   

对1~1000求阶乘

import math
def sum(self,smallNumber:int,bigNumber:int) -> int
   return reduce(lambda  x,y:x*y, range(smallNumber,bigNumber+1))

上面的xy可以自由换成其他表达式,如 x+y、x-y、x**2+y、2x+5*y 等等

range(1,1001)表示生成1到1000的连续整数列表(List)。

reduce(functionA,iterableB),functionA为需要两个变量的函数,并返回一个值。iterableB为可迭代变量,如List等。reduce函数将B中的元素从左到右依次传入函数A中,再用函数A返回的结果替代传入的一个参数,反复执行,则可将B reduce成一个单值。在此,是将1到1000的连续整数列表传入lambda函数并用两个数的积替换列表中的数,实际的计算过程为:(...((1×2)×3)×4)×...×1000),最后的结果即1000的阶乘。

g = lambda x,y: x*y

等价于

def f(x,y):
   return x*y 

比如

>>>f(4,5)
20
>>>g(4,5)
20

结果一致,在reduce里面直接用函数名代替 lambda 表达式即可,如下

>>> reduce(add, [4,5])   
9
>>> reduce(lambda x, y: x+y, [4,5])  # 使用 lambda 匿名函数
9

python一行代码求阶乘或求和(reduce函数的使用)

标签:def   Python一   mat   整数   需要   sel   python   过程   连续   

原文地址:https://www.cnblogs.com/2944014083-zhiyu/p/14868453.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!