reduce函数


reduce函数          合并函数
# from functools import reduce 导入函数

num_l=[1,2,3,100]
res=0
for num in num_l:
res+=num

print(res)
"D:\pycharm new project\venv\Scripts\python.exe" "D:/pycharm new project/01"
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))
"D:\pycharm new project\venv\Scripts\python.exe" "D:/pycharm new project/01"
106

num_l=[1,2,3,100]

def multi(x,y):
return x*y
这两个函数一样
#lambda x,y:x*y

def reduce_test(func,array):
res=array.pop(0) #先把第一个列表拿出来
for num in array:
res=func(res,num)
return res

n=reduce_test(multi,num_l)
print(n)
"D:\pycharm new project\venv\Scripts\python.exe" "D:/pycharm new project/01"
600

跟上面的值一样
print(reduce_test(lambda x,y:x*y,num_l))
"D:\pycharm new project\venv\Scripts\python.exe" "D:/pycharm new project/01"
600

num_l=[1,2,3,100]
def reduce_test(func,array,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))


#reduce函数

from functools import reduce #导入函数
num_l=[1,2,3,100]
print(reduce(lambda x,y:x+y,num_l,1)) #默认开始是1
print(reduce(lambda x,y:x+y,num_l))

"D:\pycharm new project\venv\Scripts\python.exe" "D:/pycharm new project/01"
107
106

 

posted @ 2018-04-29 15:11  夏天的麦田  阅读(327)  评论(0)    收藏  举报