reduce()函数

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值