Python入门基础之map()、reduce()函数使用 (转载)

本文环境都是基于python3.X的,毕竟要学会拥抱未来,拥抱新的知识。Python3 现在已经发展的差不多了。

1、 map()函数

map()是 python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的object并返回。(python2返回列表,Python3返回迭代对象)

map()的使用方法形如map(f(x),Itera),它有两个参数,第一个参数为某个函数,第二个为可迭代对象。

基本用法:

注意:python3中map()返回的是一个object,因为map()转变成了迭代器来节约空间,返回的是可迭代对象。

如果需要list可以直接用list(……)来强制返回一个列表。

Map的主要作用就是:并行!并行!并行!map函数和zip函数都是用来进行并行运算,迭代等。

在多进程编程中,Pool池的用法中一种就是利用map函数开启多进程,可以大大提高程序的效率。

Map原理:

在最简单的形式中,map()带一个函数和队列,将函数作用在序列的每个元素上,然后创建由每次函数应用组成的返回值列表。如下图所示:

调用函数运行:

2、reduce()函数

reduce()的使用方法形如reduce(function, iterable[, initializer]),它的形式和map()函数一样。不过参数f(x)必须有两个参数,initializer是可选的。

reduce 使用了一个二元函数(一个接收带带两个值作为输入,进行了一些计算然后返回一个值作为输出),一个序列,和一个可选的初始化器,卓有成效地将那个列表的内容"减少"为一个单一的值,如同它的名字一样。

请看实例:(注意在Python3中reduce不再是内置函数,而是集成到了functools中,需要导入)

它返回的结果相当于(1+2+3+4+5)

Reduce原理图:

它通过取出序列的头两个元素,将他们传入二元函数来获得一个单一的值来实现。然后又用这个值和序列的下一个元素来获得又一个值,然后继续直到整个序列的内容都遍历完毕以及最后的值会被计算出来为止。

码字不易,多多关照

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值