reduce()函数在Python 2中是内置函数,在Python 3中被移到了
functools
模块;
reduce()函数的语法
如下:
reduce(function,iterable,initial)
- 第一个参数是函数function,reduce()只能接受一个带有两个参数的函数;
- 第二个参数是iterable,即可迭代对象,可以是列表、字符串等序列;
- 第三个参数为初始值,可选可不选,但前两个参数是必须的;
reduce()的用法:
reduce()函数将一个序列内的所有元素按照序列顺序依次传入func函数中,并将得到的值继续作为参数与下一个序列中的元素进行操作,一直重复到序列中无元素为止;
注意到reduce()的参数函数有两个参数了吧,如果没有指定初始值的话,那么传入函数的就是序列的前两个值,如果指定了初始值,那么传入的就是初始值和序列的第一个值;
纯文字说明表述太差,直接看代码吧:
利用reduce()函数的
几个例子
:
1.给定一个序列,对序列的每一个值求和并输出
from functools import reduce
a = [1,2,3,4,5]
print(reduce(lambda x,y:x+y,a)) #15
当然如果求和的直接用Python的内建函数sum()会更方便;
2.给定一个字符串,将它反转输出
from functools import reduce
s = "hello world"
print(reduce(lambda x,y:y+x,s)) #dlrow olleh
3.给定一个字符串型的数字串,将它转换为整数,例如 “19727” 转换为 19727;
from functools import reduce
dic = {'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9,'0':0}
def sti(c):
return dic[c]
print(reduce(lambda x,y:10*x+y,map(sti,'19727'))) #19727
版权声明:本文为ckk727原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。