python高阶函数——map/reduce
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python高阶函数——map/reduce,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1687字,纯文字阅读大概需要3分钟。
内容图文
![python高阶函数——map/reduce](/upload/InfoBanner/zyjiaocheng/631/e770181921204905ac6262373fc86943.jpg)
前言
该文档旨在厘清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]上。
![python高阶函数——map/reduce - 文章图片](/upload/getfiles/0001/2021/5/1/20210501114851982.jpg)
![python高阶函数——map/reduce - 文章图片](/upload/getfiles/0001/2021/5/1/20210501114852011.jpg)
def f(x): return x * x r = map(f,[1, 2, 3, 4, 5, 6, 7, 8, 9]) list(r) #r返回的结果是一个Iterator,是一个惰性序列,因此通过list()函数让它把整个序列都计算出来并返回一个listView Code
惰性序列解释:
Python的iterator是一个惰性序列,意思是表达式和变量绑定后不会立即进行求值,而是当你用到其中某些元素的时候才去求某元素对的值。
惰性是指,你不主动去遍历它,就不会计算其中元素的值。
惰性序列及延迟计算参见:
https://blog.csdn.net/Solo95/article/details/78834041
以上该栗子亦可以通过循环实现,具体如下:
![python高阶函数——map/reduce - 文章图片](/upload/getfiles/0001/2021/5/1/20210501114851982.jpg)
![python高阶函数——map/reduce - 文章图片](/upload/getfiles/0001/2021/5/1/20210501114852011.jpg)
#循环实现 def f(x): return x **2 L = [] 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的所有数字转换为字符串
![python高阶函数——map/reduce - 文章图片](/upload/getfiles/0001/2021/5/1/20210501114851982.jpg)
![python高阶函数——map/reduce - 文章图片](/upload/getfiles/0001/2021/5/1/20210501114852011.jpg)
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)
用法示例:
先占个坑。。。等一下再补上(占坑大王
内容总结
以上是互联网集市为您收集整理的python高阶函数——map/reduce全部内容,希望文章能够帮你解决python高阶函数——map/reduce所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。