reduce()函数在Python3.0中已经不是BIF函数了,使用前需要通过导入:
from functools import reduce
reduce(func,seq)函数是一种自动迭代吧,把序列中的前两个元素导入到函数中,得到一个新的参数,并同序列中的下一个元素一起作为函数的新的两个参数,依次进行,最后返回一个函数值。
以最简单的数组元素想加为例。
使用循环语句,(C语言的风格吧):
sumNum = 0
for i in range(5):
sumNum += i
print(sunNum)
得到结果:
10
采用reduce()函数的方法,如下:
from functools import reduce
sumNum = redece(lambda x,y:x+y,range(5))
print(sumNum)
得到:
10
TIPS:这里使用了lambda()函数,显得很pythonic……
——————————————————————————————
11/26 补充:
reduce(lambda a, b : a & b, list(map(dict.keys, [dict1, dict2, dict3])))
一行代码搞定,同时运用了reduce, lambda, map函数,更加pythonic了…