博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python函数式编程map()、reduce()
阅读量:7061 次
发布时间:2019-06-28

本文共 873 字,大约阅读时间需要 2 分钟。

一、map()

格式:map(func, *iterables)

map函数接受两个参数,第一个是要执行的函数,第二个是可迭代对象,可迭代对象可以传入多个参数。

map()函数是将func作用于iterables中的每一个元素,并用一个列表给出返回值。如果func为None,作用同zip()。

传入一个可迭对象

def func(x):    return x*xlists = [1, 2, 3, 4]l = list(map(func, lists))print(l)结果:[1, 4, 9, 16]

传入两个可迭对象

def func(x, y):    return x+ylists = [1, 2, 3, 4]lists2 = [1, 2, 3, 4]l = list(map(func, lists, lists2))print(l)结果:[2, 4, 6, 8]
二、reduce()

格式:reduce(function, sequence, initial=None)

reduce函数接受三个参数,第一个是要执行的函数,第二个是序列,第三个是默认值。第一个函数必须有两个参数。

reduce函数即为化简,它是这样一个过程:每次迭代,将上一次的迭代结果(第一次时为init的元素,如没有init则为seq的第一个元素)与下一个元素一同执行一个二元的func函数。在reduce函数中,init是可选的,如果使用,则作为第一次迭代的第一个元素使用。

例子:

不传入默认值

from functools import reducelists = ['a', 'b', 'c', 'd']r = reduce(lambda x, y: x+y, lists)print(r)结果:abcd

传入默认值

from functools import reducelists = ['a', 'b', 'c', 'd']r = reduce(lambda x, y: x+y, lists, '你好')print(r)结果:你好abcd

转载地址:http://axfll.baihongyu.com/

你可能感兴趣的文章
《精通Python网络爬虫:核心技术、框架与项目实战》——3.5 身份识别
查看>>
机器视觉:为什么追踪网球的技术不能用在足球和篮球上?
查看>>
《Linux/UNIX OpenLDAP实战指南》——1.8 自动化运维解决方案
查看>>
性能优化:使用ramlog将日志文件转移到内存中
查看>>
Android应用性能优化最佳实践.2.2 性能分析工具
查看>>
Java创建线程安全的方法
查看>>
【资料合集】Apache Flink 精选PDF下载
查看>>
gh-ost:不一样的在线表结构变更
查看>>
struts2 获得request session application的四种方式
查看>>
通过数据云解决方案DBaaS
查看>>
Jsp实现页面forEach循环遍历多条数据的显示和后台对应数据的获取(strurs1)实现
查看>>
NSSet集合
查看>>
死磕Tomcat7源码之一:解析web.xml
查看>>
Tomcat访问路径去掉项目名称
查看>>
Linux下DNS服务器搭建详解
查看>>
mysql常用基础操作语法(十一)~~字符串函数【命令行模式】
查看>>
【HIMI转载推荐之三】基于COCOS2DX引擎UI扩展引擎包[COCOS2D-X-3C]
查看>>
Struts2 <s:token>防止表单重复提交   %{}
查看>>
《系统分析与设计方法》 计算投资回收分析
查看>>
从使用层面上了解委托和事件的区别
查看>>