最新公告
  • 欢迎您光临站盟网(原知事网),一个优质的网站源码基地、精品网站模板和插件。欢迎加入永久SVIP
  • python中filter与map有什么不同?

    正文概述 知事网   2020-12-18 10:12   72

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

    转载自:python学习网 https://www.py.cn/


    站盟网 » python中filter与map有什么不同?

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者
    请选择支付方式
    ×
    支付宝支付
    微信支付
    余额支付
    ×
    微信扫码支付 0 元