在序列元素被函数调用后,我们会发现使用filter与map返回的结果有所不同,filter返回的是筛选后的元素,而map返回的是所有元素。下面我们就定义和返回结果进行讨论,找出python中filter与map的不同。
1.定义不同
map是Python的内置函数, 使用的方式如下:
list = map(func, iter)
其中, func是函数, iter是可迭代的序列。
它的功能是:将一个序列中的每一个元素应用传入的函数, 并返回一个包含所有函数调用结果的一个列表
使用方式:
from collections import Iterable lst = [1, 2, 5, 6, 7] res = filter(lambda x: x % 2 == 0, lst) # res 是一个可迭代对象 print(isinstance(res, Iterable), type(res)) for item in res: print(item)
2.返回结果不同
函数名区别map作用于每个可迭代对象的元素,并返回处理之后的元素filter作用于可迭代内每个元素,根据计算后结果:True保留,Flase去掉
获取列表内所有的整数类型元素
def only_int(x): try: if isinstance(x, int): return True else: return False except ValueError as e: return False dt = filter(type_int,[1,2,3,3,'3232',-34.5,34.5]) >>> list(dt) [1, 2, 3, 3]
以上两点就是python中filter与map的不同,通过定义和实例我们能够清晰的看出二者的不同,小伙伴们使用的时候可以根据想要的结果挑选合适的函数。
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!