python的map()和reduce()函数

1、map()函数
map(参数1, 参数2 ),参数1是一个函数,参数2是一个是Iterable可迭代对象,返回一个Iterator对象,因为是惰性序列,所有需要通过list()函数让它把整个序列都计算出来并返回一个list。
举例用法:
>>> def f(x):
...     return x * x
...
>>> a = map(f, [1, 2, 3, 4])
>>> list(a)
[1, 4, 9, 16]
>>>
map()可以计算任意复杂的函数,如:
#把list的数字转成字符串
>>> a = map(str, [1, 2, 3, 4])
>>> list(a)
['1', '2', '3', '4']
>>>
2、reduce()函数
reduce() 函数在 python 2 是内置函数, 从python 3 开始移到了 functools 模块。reduce(参数1, 参数2, 参数3 ),参数1是一个函数,参数2是Iterable可迭代对象,参数3是初始值的意思,是可有可无的参数。
举例用法:
求和,
>>> def add(x, y):
...     return x + y
...
>>> reduce(add, [1, 2, 3, 4])
10
>>> reduce(add, [1, 2, 3, 4], 2)
12
上面的代码,其实就相当于 1 + 2 + 3 + 4 = 10,如果存在初始值参数就加上初始值为12
复杂一点的用法
>>> reduce(lambda x, y: x * 10 + y, [1, 2, 3, 4])
1234
lambda x, y: x * 10 + y 相当于下面的函数
>>> def list2int(x, y):
...     return x * 10 + y
...
>>>
3、map()和reduce()搭配使用
将传入的字符串数字转化为整数的函数
>>> d = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}
>>> def char2num(s):
...     return d[s]
...
>>> def str2int(s):
...     return reduce(lambda x, y: x * 10 + y, map(char2num, s))
...
>>> str2int(['1', '2', '3', '4'])
1234
>>>
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值