python高阶函数map_python高阶函数——map/reduce

前言

该文档旨在厘清map/reduce函数的定义、用法及特性。

概述

Python内建了map()和reduce()函数,通过这两个函数可以达到循环迭代的效果。

函数定义、特性及用法示例

1.map()函数:map(function,iterable)

简介:map函数是python内置的高阶函数,是典型的函数式编程;

参数:map()函数接收两个参数,第一个参数是函数,第二个参数是Iterable(可迭代的),如字符串、字典等。

作用:map()函数将函数(function)依次映射于指定的序列(iterable);

用法示例:

栗子1:将函数f(x)=x^2,依次作用在list[1, 2, 3, 4, 5, 6, 7, 8, 9]上。

ContractedBlock.gif

ExpandedBlockStart.gif

deff(x):return x *x

r= map(f,[1, 2, 3, 4, 5, 6, 7, 8, 9])

list(r)#r返回的结果是一个Iterator,是一个惰性序列,因此通过list()函数让它把整个序列都计算出来并返回一个list

View Code

惰性序列解释:

Python的iterator是一个惰性序列,意思是表达式和变量绑定后不会立即进行求值,而是当你用到其中某些元素的时候才去求某元素对的值。

惰性是指,你不主动去遍历它,就不会计算其中元素的值。

惰性序列及延迟计算参见:

https://blog.csdn.net/Solo95/article/details/78834041

以上该栗子亦可以通过循环实现,具体如下:

ContractedBlock.gif

ExpandedBlockStart.gif

#循环实现

deff(x):return x **2L=[]for n in [1, 2, 3, 4, 5, 6, 7, 8, 9]:

L.append(f(n))print(L)

View Code

map()函数作为高阶函数,事实上它把运算规则抽象了,因此,我们不但可以计算简单的f(x)=x^2,还可以计算任意复杂的函数。

栗子2:把list的所有数字转换为字符串

ContractedBlock.gif

ExpandedBlockStart.gif

list(map(str,[1, 2, 3, 4, 5, 6, 7, 8, 9]))

View Code

2.reduce()函数:reduce(function,iterable[,initializer])

简介:reduce()函数对参数序列中的元素进行累积

参数:reduce()函数接收两个参数,第一个参数是函数,第二个参数就是需要累计计算的序列;

作用:reduce把一个函数作用在序列[x1, x2, x3, ...]上,把结果继续和序列的下一个元素做累计计算,其效果就是:reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)

用法示例:

先占个坑。。。等一下再补上(占坑大王

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值