python中filter与map不同

python中filter与map不同,第1张

python中filter与map不同

在序列元素函数调用后,我们会发现使用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的不同,通过定义和实例我们能够清晰的看出二者的不同,小伙伴们使用的时候可以根据想要的结果挑选合适的函数。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/3013613.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-28
下一篇 2022-09-28

发表评论

登录后才能评论

评论列表(0条)

保存