
python filter()和map()
发布日期:2021-05-07 15:03:47
浏览次数:26
分类:技术文章
本文共 856 字,大约阅读时间需要 2 分钟。
标题 Python中的filter()和map()函数的共性和不同点
这两个函数是Python的内建函数,都是针对可迭代的序列经过函数所传的方法返回一个新的可迭代的对象,记住,仅仅返回一个可迭代的对象,这两个是对父类object的一个子继承子类。
map:使用指定方法去作用传入的每个可迭代对象的元素,生成新的可迭代对象。 filter:使用指定方法过滤可迭代对象的元素,从而生成一个新的可迭代对象。 从以上定义可以发现共同点是都可以生成一个新的可迭代对象,但map是针对原序列的每个元素,也就是map不具有逻辑判断的功能,filter根据逻辑判断生成新的迭代对象。 我想,应该可以这样理解。 下面,上代码:l=(2,5,6,8,4,66)r=filter(lambda i:i>5,l)#过滤列表l中所有大于5的数字print(list(r))#指定返回的对象类型为列表并打印[6, 8, 66]#执行结果#如果没有使用filter,那么,正常的程序是#首先遍历列表,在遍历的时候设置筛选#条件,将符合条件的列表写入新的列表下面是使用map():r1=map(lambda i:i>5,l)#同上print(list(r1))#同上,指定返回迭代对象的类型为列表[False, False, True, True, False, True]#执行结果下面是列表内元素的乘运算:l=(2,5,6,8,4,66)r=filter(lambda i:i*2,l)r1=map(lambda i:i*2,l)print(list(r))print(list(r1))#执行后,filter没有生效,迭代对象转换#列表成功,map正常运算[2, 5, 6, 8, 4, 66][4, 10, 12, 16, 8, 132]补充说一下,filter和map的格式filter(方法,可迭代对象)map(方法,可迭代对象)也就是说,两者的区别在其中的方法细微不同可迭代对象可以是列表推导式,有兴趣的同学可以自行验证。 i
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年03月20日 03时34分09秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
279 完全平方数(bfs)
2019-03-04
865 具有所有最深结点的最小子树(递归)
2019-03-04
738 单调递增的数字(找出逆序的位置)
2019-03-04
410 分割数组的最大值(二分查找、动态规划)
2019-03-04
875 爱吃香蕉的珂珂(二分查找)
2019-03-04
693 交替位二进制数(位运算)
2019-03-04
450 删除二叉搜索树中的节点(递归删除节点)
2019-03-04
769 最多能完成排序的块(分析)
2019-03-04
542 01 矩阵(单源bfs、多源bfs)
2019-03-04
1679 K 和数对的最大数目(使用字典对余数分组、排序 + 双指针)
2019-03-04
python测试代码耗时
2019-03-04
桌面图标的自动排列图标
2019-03-04
121 买卖股票的最佳时机(寻找数组中单调递增的序列中最小数字与最大数字--单调栈)
2019-03-04
第十一届蓝桥杯python组第二场省赛-数字三角形
2019-03-04
蓝桥杯四平方和(暴力)
2019-03-04
手机号码(数位dp-dfs)
2019-03-04
算法训练 Anagrams问题
2019-03-04
Linux-文件目录类常用指令3
2019-03-04
搜索查找类指令
2019-03-04
数字三角形的无返回值的深度优先搜索解法
2019-03-04