Python3中reduce和lambda的用法
reduce() 函数将一个数据集合(iterable[, initializer]可以看出是包含了初始化数据的,且初始化数据位列第1位,即集合中的第1个元素)中的所有数据进行下列操作:先对集合中的第 1、2 个元素进行function函数运算,得到的结果再与第3个元素进行function 函数运算,依次类推,最后得到一个结果。
lambda表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。
在python 3之前的版本可以不用写from functools import reduce。
在python 3以后, reduce已经不在built-in function里了, 要用它就得from functools import reduce。
示例:
from functools import reduce
a=reduce(lambda x,y:x*y,[1,2,3],5)
print(a)
运算过程是:
5*1=5
5*2=10
10*3=30
from functools import reduce
a=reduce(lambda x,y:x+y**2,[1,2,3],3)
print(a)
运算过程是:
3+1*1=4
4+2*2=8
8+3*3=17
from functools import reduce
a=reduce(lambda x,y:x*2+y*3,[4,6],3)
print(a)
运算过程是:
3*2+4*3=18
18*2+6*3=54
如果单独使用lambda,示例:
MAXIMUM = lambda x,y : (x > y) * x + (x < y) * y
MINIMUM = lambda x,y : (x > y) * y + (x < y) * x
a = 10
b = 20
c = 30
print 'The largar one is %d' % MAXIMUM(a,b,c)
print 'The lower one is %d' % MINIMUM(a,b,c)