Python23之内置函数filter()和map()
首先我们了解一个概念:迭代
迭代是访问集合元素的⼀种⽅式。迭代器是⼀个可以记住遍历的位置的对象。迭代器对象从集合的第⼀个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
我们已经知道可以对list、tuple、str等类型的数据使⽤for...in...的循环语法从其中依次拿到数据进⾏使⽤,我们把这样的过程称为遍历,也叫迭代。
一、filter()函数
filter()函数实现过滤功能,它有两个参数,第一个参数为None时或一个函数对象,第二个参数为一个可迭代对象
当第一个参数为None时,实现将可迭代对象的每一个元素值为False的过滤掉,生成一个仅包含元素值为True的新可迭代对象
list1 = ['詹姆斯','字母哥',0,False,'废青123']
lsit2 = filter(None,list1) lsit2
<filter object at 0x04002470>
list(lsit2)
['詹姆斯', '字母哥', '废青123']
当第一个参数为一个函数对象时,那么此时作为参数的函数会调用第二个可迭代对象里面的每一个元素作为实参,并按返回值对迭代对象的元素进行过滤,返回值为False的被过滤掉,剩下的可迭代对象的元素组成一个新的可迭代对象并返回
list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
list(filter(lambda x:x%2, range(10)))
[1, 3, 5, 7, 9]
二、map()函数
map()函数与filter()函数形式一致,实现对可迭代对象的映射,但其第一个参数必须是一个函数对象,而且map()函数是将经过函数对象处理后的返回值作为新的元素组成一个可迭代对象
list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
list(map(lambda x:x%2, range(10)))
[0, 1, 0, 1, 0, 1, 0, 1, 0, 1]
Python23之内置函数filter()和map()的更多相关文章
- 内置函数 filter zip map
1. 基本内置函数: 2. enumerate : 枚举 把列表转化为有索引的字典: 3. eval 和 exec 4. 过滤函数 filter 5. map 函数批量修改: 6. 配对函数 zi ...
- 函数进阶· 第3篇《常用内置函数filter()、map()、zip(),怎么用的呢?》
坚持原创输出,点击蓝字关注我吧 作者:清菡 博客:oschina.云+社区.知乎等各大平台都有. 由于微信公众号推送改为了信息流的形式,防止走丢,请给加个星标 ,你就可以第一时间接收到本公众号的推送! ...
- 内置函数 -- filter 和 map
参考地址:http://www.cnblogs.com/sesshoumaru/p/6000788.html 英文文档: filter(function, iterable) Construct an ...
- 内置函数——filter和map
filter filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False , filter()根据判断结果自动过滤掉不符合条件的元 ...
- 内置函数filter和map
filter filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回 ...
- 内置函数---filter和map
filter filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回 ...
- 带有key参数的函数filter,map,max,min
内置函数———filter def is_not_empty(s): return s and len(s.strip()) > 0 filter(is_not_empty, ['test', ...
- 内置函数filter()和匿名函数lambda解析
一.内置函数filter filter()函数是 Python 内置的一个高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回由符合条件迭代器 ...
- Python 内置函数&filter()&map()&reduce()&sorted()
常用内置函数 Python 2.x 返回列表,Python 3.x 返回迭代器 在进行筛选或映射时,输出的结果是一个数组,需要list帮助. 如:print(list(map(lambda x:x+1 ...
随机推荐
- zabbix监控线
echo mntr | nc 127.0.0.1 2181获取mntr的信息 换成conf将获得conf信息,从中找出需要监控项 conf: clientPort:客户端端口号 dataDir:数据文 ...
- Nginx 所使用的 epoll 模型是什么?
对于 Nginx,相信有过 Web 服务部署经验的同学都不陌生,它有以下特点: 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 相较于 A ...
- 生成模型 VS 判别模型 (含义、区别、对应经典算法)
从概率分布的角度考虑,对于一堆样本数据,每个均有特征Xi对应分类标记yi. 生成模型:学习得到联合概率分布P(x,y),即特征x和标记y共同出现的概率,然后求条件概率分布.能够学习到数据生成的机制 ...
- 常见的医学基因筛查检测 | genetic testing | 相癌症早筛 | 液体活检
NIPT, Non-invasive Prenatal Testing - 无创产前基因检测 (学术名词) NIFTY,胎儿染色体异常无创产前基因检测 (注册商标)华大的明显产品 新生儿耳聋基因检测 ...
- 服务端高并发分布式架构 ESB 企业服务总线
服务端高并发分布式架构演进之路 - 个人文章 - SegmentFault 思否 https://segmentfault.com/a/1190000018626163 ESB 企业服务总线讲解 ht ...
- shell脚本 获取第几行 第几列 的命令 awk sed
例如:我们需要查看 包含 sbin的进程 中的PID号 查看当前所有包含sbin的进程 [root@fea3 ~]# ps aux | grep sbin 只过滤出所有的PID号: [root@fea ...
- layui日历控件设置选择日期不能超过当前日期
layui.use('laydate', function() { var laydate = layui.laydate; laydate.render({ elem : '#begin', max ...
- ISO/IEC 9899:2011 条款6.8.4——选择语句
6.8.4 选择语句 语法 1.selection-statement: if ( expression ) statement if ( expression ...
- 线程池+同步io和异步io(浅谈)
线程池+同步io和异步io(浅谈) 来自于知乎大佬的一个评论 我们的系统代码从同步方式+线程池改成异步化之后压测发现性能提高了一倍,不再有大量的空闲线程,但是CPU的消耗太大,几乎打满,后来改成协程化 ...
- java 时间的原生操作和工具类操作
package com.xc.test.dateoperation; import org.apache.commons.lang3.time.DateFormatUtils; import org. ...