python中reduce是什么意思_python-reduce函数

更新时间:2023-06-18 13:42:45 阅读: 评论:0

python中reduce是什么意思_python-reduce函数
0.摘要
本⽂主要介绍functool模块中的reduce函数,并使⽤reduce实现阶乘等操作。
茂密近义词
形容高的词语1.reduce函数
官⽅释义:Apply a function of two arguments cumulatively to the items of a quence,from left to right, so as to reduce the quence to a single value.
For example, reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates ((((1+2)+3)+4)+5). If initial is prent, it is placed before the items of the quence in the calculation, and rves as a default when the quence is empty.
功能:可应⽤在这样的场景,利⽤⼀个有两个参数的函数,把⼀个序列中的项从左到右累积起来,以便把⼀个序列压缩为⼀个数
曹熏铉例如:reduce(lambda x,y:x+y,[1,2,3,4,5])计算了((((1 + 2)+(3)+ 4)+ 5)。如果初始值存在,那么在计算之前,它被放在所有项的前⾯。如果序列为空,它就作为默认值。
参数说明:
function:必选参数。需要有两个参数,并带有返回值
quence:必选参数,但可以为空。列表,存放带计算的数据。如果为空,必须指定initial;如果不为空,允许存放[1,∞)个数。
initial:可选参数。如果指定,则作为第⼀个被使⽤的参数,相当于添加到quence。如果quence为空,则将initial设为默认的返回值(注意,空的意思是[],⽽不是None)。
⽐如:def fun1(x,y):
return x + y
print(reduce(fun1,[],1))
由于quence为空,所以print的值是initial的值,1。
另外:reduce函数仅⽀持位置实参,不⽀持关键字实参
所以,reduce(function=fun1,quence=[1,2,3])这样的写法,会导致程序报错:
TypeError: reduce() takes no keyword arguments
红鲤鱼绕口令2.程序⽰例
使⽤reduce函数实现阶乘:from functools import reduce
木雕def fun1(x,y):
return x*y
说文解字注def factorial1(n):
quence = range(1,n+1)
result = reduce(fun1,quence,1)
return result
if __name__ == "__main__":
协议书范文for i in range(10):
print(factorial1(i))
此处,添加initial是考虑到0!=1的情况。
当然,我们可以借助lambda函数使得程序更简单:from functools import reduce def factorial2(n):
我寂寞寂寞就好result = reduce(lambda x,y:x*y, range(1,n+1),1)
return result
if __name__ == "__main__":
for i in range(10):
print(factorial2(i))
lambda表达式使⽤⽅法请移步:

本文发布于:2023-06-18 13:42:45,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/983546.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:参数   函数   程序   计算   存放
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图