reduce() 函数在 python 2 是内置函数, 从python 3 开始移到了 functools 模块。
引入reduce函数:from functools import reduce
reduce 有 三个参数
function 有两个参数的函数, 必需参数
sequence tuple ,list ,dictionary, string等可迭代物,必需参数
initial 初始值, 可选参数
reduce的工作过程是 :在迭代sequence(tuple ,list ,dictionary, string等可迭代物)的过程中,首先把 前两个元素传给 函数参数,函数加工后,然后把得到的结果和第三个元素作为两个参数传给函数参数, 函数加工后得到的结果又和第四个元素作为两个参数传给函数参数,依次类推。 如果传入了 initial 值, 那么首先传的就不是 sequence 的第一个和第二个元素,而是 initial值和 第一个元素。经过这样的累计计算之后合并序列到一个单一返回值
直接放代码可以看:
def add(x, y):
... return x+y
...
from functools import reduce
reduce(add, [1,2,3,4])
10
还可以把一个整数列表拼成整数,如下:
from functools import reduce
reduce(lambda x, y: x * 10 + y, [1 , 2, 3, 4, 5])
12345
网友评论