打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python 过滤器方法 filter和map 的理解
userphoto

2022.12.02 北京

关注

测试环境:

操作系统: Window 10
工具:Pycharm
Python: 3.7

filtermap是 python 中常常被使用的两个方法。这两个方法的使用方法很相似:

相同点:

 1. 第一个参数都是一个函数
    
 2. 第二个参数是一个可迭代序列
 
 3. 返回可迭代对象

不同点:

 1. filter的第一个参数是函数,这个函数是用来判断条件的

 2. map的第一个函数也是函数,但这个函数是用来做映射的。

map

a = [3,4,1,2,54,6]
b = list(map(lambda x: x**2,a))
print(b)
# [9, 16, 1, 4, 2916, 36]

map中,第一个参数是一个lambda函数,作用是把输入元素乘方,结果作为输出。第二个参数就是可迭代序列aa的每一个元素都会经过lambda函数变成另一个数字。所有经过lambda函数的数字的输出都作为map函数的输出,形成一个可迭代序列。然后用list函数把可迭代序列变成list形式。

我的理解:原文这里有点绕,我理解为数学中的函数映射关系,去搜索了一下 map 的英文含义,也就是所谓的映射,和原文说的映射差不多一个意思,不过这里理解英语含义比较方便些,理解了英文含义,其实更有助与理解 map 这个函数的用法
注意翻译加粗的文字

map n. 地图;分布图;(基因)图谱,染色体图;天体图;映射;<非正式>脸,面孔 v.
绘制……的地图;了解信息;详细安排;映射;与……有关,与……有联系;使(基因)在染色体上定位 【名】 (Map)(美)马普(人名)

所谓映射指的是 A 映射 B (A —> B) 这中间肯定有一个映射关系,你可以理解为转换关系,通过一个数学上的四则运算( + - * / 不过这里可是编程,自然需要有模运算 %) ,变换为一个 B 的集合,大概就是另外一个数据集合,输出 B
映射: x ——> f(x)

filter

a = [3,4,1,2,54,6]
b = list(filter(lambda x:x>2,a))
print(b)
# [3, 4, 54, 6]

filter的第一个参数是lambda函数,该函数代表了一个条件,只要a中的元素满足了这个条件,才能作为 filter 的输出中的一个元素。
注意翻译加粗的文字

filter 英 [ˈfɪltə®] 美 [ˈfɪltər] n.
过滤器;滤光器,滤声器,滤波器;过滤程序,过滤软件;(指示车辆转弯的)分流指示灯 v.
过滤;渗入,透过;(消息、信息等)慢慢传开,走漏;缓慢进入,陆续步入;(车辆)看到分流指示灯的信号后转弯;(用程序)筛选 【名】
(Filter)(德)菲尔特(人名)

根据原文和翻译的理解:filter 方法是一个过滤器,并且它的第一个函数,是一个判断函数,执行的是选择逻辑,返回的值,要么是真 True的,要么是假 False,真就把 参数留下来,的就把参数 丢弃,一次传一个参数。filter方法对参数进行判断是否保留下来作为输出结果,而不是输出一个借由参数变换后的结果集合,请不要和 map 方法弄混了

filter的第二个函数参数传递逻辑参考如下 :

a = ["1", "2", "3", "4", "5", "6", "7", "8", "9"]
for i in a:
	print(i+' ', end='')
# 1 2 3 4 5 6 7 8 9

总结:
map 方法(函数) 作逻辑运算( and or & ...)/运算符运算处理(+ - * / %) 等等,也就是 map 一定会加工你的参数,把你参数变成它的形状 。
filter 方法不会去把你的参数怎么样,但是它像一个 HR 一样,决定了你是否可以留下来成为新员工

返回值类型是新的可迭代对象。

还有一个比喻是金子被过滤器(条件)过滤了,水不要。

参考链接:
Python中map和filter的使用方法

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python入门教程:内置函数—Map、Reduce、Filter
python入门教程(七)函数式编程,匿名函数和map,filter函数
Python 最频繁使用的4个函数:lambda、 map、filter 和 reduce
10分钟快速入门Python函数式编程
Python 函数式编程
10分钟学习函数式Python
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服