python reduce方法,.reduce函数
主要介绍Python中reduce函数的详细讲解,通过示例代码详细介绍,对大家的学习或工作有一定的参考价值。有需要的朋友下面和边肖一起学习。
00-10101Reduce用法2 Reduce与for循环性能比较reduce函数原本是python2中的内置函数,但在python3中被移到了functools模块中。
reduce函数首先从列表(或序列)中取出两个元素来执行指定的函数,并将输出结果和第三个元素传递给函数,然后将输出结果和第四个元素传递给函数,…,以此类推,直到取完列表中的所有元素。
目录
为了对列表元素求和,如果我们不使用reduce,我们通常使用for loop:
def sum_func(arr):
如果len(arr)=0:
返回0
else:
out=arr[0]
对于arr[1:]:中的v
out=v
退回去
a=[1,2,3,4,5]
print(sum_func(a))
可以看到,码比很大,不够优雅。如果使用reduce,那么代码会非常简洁:
从functools导入减少
a=[1,2,3,4,5]
def add(x,y):返回x y
打印(reduce(add,a))
输出是:
15
1 reduce用法
与内置函数map和filter不同,reduce在性能方面并不比for loop有优势,即使在实际测试中也是如此。
Reduce比for loop慢。
从functools导入减少
导入时间
(arr):的定义测试
如果len(arr)=0:
返回0
out=arr[0]
因为我在arr[1:]:
out=i
退回去
def测试_减少(arr):
out=reduce(x,y: x y,arr)
退回去
a=[i for i in range(100000)]
t1=time.perf_counter()
测试(a)
t2=time.perf_counter()
test_reduce(a)
t3=time.perf_counter()
Print(for循环需要: ,(t2-t1))
打印(减少花费: ,(t3-t2))
输出结果如下:
森林的循环需要时间。38860 . 68686868686
归约是很费时间的。38860 . 68868688686
所以如果性能要求比较严格,建议不要用reduce。如果你想让代码更优雅而不耗费时间,可以使用reduce。
关于Python中reduce函数的详细解释,本文到此为止。关于Python中reduce函数的更多信息,请搜索热门IT软件开发工作室之前的文章或者继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。