D16-10 reduce函数
计算数组中的和
最简单的方法用for循环
num_l = [1,2,3,100]
res = 0
for num in num_l:
res+=num
print(res)
输出结果
106
另一种方法
num_l = [1,2,3,100]
def reduce_test(array):
res=0
for num in array:
res+=num
return res
print(reduce_test(num_l))
结果为106
相乘如下:
def reduce_test(func,array):
res=1
for num in array:
res=func(res,num)
return res
print(reduce_test(lambda x,y:x*y,num_l)) #给reduce_test传参数,func对应的是计算方法,
array对应的则是要计算的数组。
输出结果600
判断用户是否设置了初始值
num_l = [1,2,3,100]
def reduce_test(func,array,init=None): #init初始值默认为None
if init is None:
res=array.pop(0)
else:
res = init
for num in array:
res=func(res,num)
return res
print(reduce_test(lambda x,y:x*y,num_l,100))
结果 60000
reduce函数 #reduce函数的功能 合并一个序列 得到最终结果 reduce(lambda x,y:x+y,num_l,1) 中的1是将初始值设置为1
from functools import reduce num_l = [1,2,3,100] reduce(lambda x,y:x+y,num_l,1) print(reduce(lambda x,y:x+y,num_l,1)) 输出结果107

浙公网安备 33010602011771号