立即学习:https://edu.youkuaiyun.com/course/play/24797/282183?utm_source=blogtoedu
python有一个积累函数,
在functools模块中的reduce函数
reduce函数需要两个参数,第一个参数是一个函数,第二个参数是序列。
该函数的作用就是:第一次将参数中序列的前两个元素赋值给第一个函数参数,然后对两元素进行相应操作(这个操作是定义在函数参数中的)
操作执行完后,返回值会自动作为下一轮的两参数之一,并从序列中再取一个元素作为另一个参数
直至结束,
例:
import functools
def Fn(x,y):
return x * y
def FFF(n):
if n < 1:
print("error")
else:
return functools.reduce(Fn, range(1 ,n + 1))
c = FFF(6)
print(c)
此外,可以使用lambda表达式将其简写为:
functools.reduce(lambda x, y: x ? y, 序列)
其中?表示需要对两参数进行的操作
例:
import functools
def Fn(x,y):
return x * y
def FFF(n):
if n < 1:
print("error")
else:
#return functools.reduce(Fn, range(1 ,n + 1))
return functools.reduce(lambda x, y:x * y,range(1,n + 1))
c = FFF(6)
print(c)